#日付: 週末日曜日の取得

日付, 週末日曜日の取得
日付, 週末日曜日の取得 (Date, Get Weekend Sunday)
任意日付の週末日曜日を取得します。日曜日が指定された場合、当日を返します。なお「翌週の月曜日」「当週の火曜日」を取得したい場合は、更に #q_date.addDays(1) や #q_date.addDays(-5) といった変換が必要です。
Configs
  • A: 起点となる日付もしくは日時をセットしてください (例 “2022-04-29” ) *#{EL}
  • B: 週末日曜日の日付が格納される日付型データ項目を選択してください (更新) *
Script (click to open)
// GraalJS Script (engine type: 2)

//////// START "main()" /////////////////////////////////////////////////////////////////
main();
function main(){ 

//// == Config Retrieving / 工程コンフィグの参照 ==
const strTarget       = configs.get( "StrConfA" );        /// REQUIRED /////////////
  if( strTarget     === "" ){
    throw new Error( "\n AutomatedTask ConfigError:" +
                     " Config {A: Date or Datetime} is empty \n" );
  }
  let dateTarget      = parseDateAsMidnight( strTarget );
const datePocketOutput = configs.getObject( "SelectConfB" ); /// REQUIRED ///////////


//// == Data Retrieving / ワークフローデータの参照 ==
// (Nothing. Retrieved via Expression Language in Config Retrieving)


//// == Calculating / 演算 ==
let numDayId = dateTarget.getDay(); // Sun=0, Mon=1 ,,
if( numDayId !== 0 ){
  let numUntilSunday = ( 7 - numDayId );
  dateTarget.setDate( dateTarget.getDate() + numUntilSunday );
}


//// == Data Updating / ワークフローデータへの代入 ==
engine.setData( datePocketOutput, new java.sql.Date( dateTarget.getTime() ) );


} //////// END "main()" /////////////////////////////////////////////////////////////////


function parseDateAsMidnight( str ) { // Transform date from String to Date
  if( str === "" ){
    throw new Error( "\n AutomatedTask ParseDateError:" +
                     " String is empty \n" );
  }
  var arrNumParts = str.match( /\d+/g );
  if( arrNumParts === null ){
    throw new Error( "\n AutomatedTask ParseDateError:" +
                     " No numeric characters in: " + str + "\n" );
  }
  if( arrNumParts.length < 3){
    throw new Error( "\n AutomatedTask ParseDateError:" +
                     " 3 Parts of numeric characters are needed in: " + str + "\n" );
  }
  return new Date( parseInt(arrNumParts[0], 10), 
                   parseInt(arrNumParts[1], 10) - 1, 
                   parseInt(arrNumParts[2], 10) ); // months are 0-based
  // Note: new Date("2014-11-10") // Mon Nov 10 2014 09:00:00 GMT+0900 (JST)
  // Note: new Date(2014, 10, 10) // Mon Nov 10 2014 00:00:00 GMT+0900 (JST)
}

/*

Notes:
- When the process reaches the automated task, the DATE data is automatically calculated.
    - `YYYY-MM-DD` (date type format), `YYYY/MM/DD`, etc.
    - `YYYY-MM-DD hh:mm` (datetime data format) can also be regarded as the starting date.
APPENDIX:
- Update Data
    - eg. Last day of the previous month
    - `#today.addMonths(-1).getLastDateInMonth()`
    - https://support.questetra.com/bpmn-icons/service-task-data-assignment/
- R2271: Output of Date and Datetime Data via EL syntax
    - https://questetra.zendesk.com/hc/en-us/articles/360024292672-R2271

Notes-ja:
- 案件が自動処理工程に到達した際、日付データについて自動計算されます。
    - `YYYY-MM-DD` (日付型データの書式) や `YYYY/MM/DD` など
    - `YYYY-MM-DD hh:mm` (日時型データの書式) も起点日と見なすことが可能です。
APPENDIX-ja:
- データ更新
    - 例 "前月の末日"
    - `#today.addMonths(-1).getLastDateInMonth()`
    - https://support.questetra.com/ja/bpmn-icons/service-task-data-assignment/
- R2271: EL式による日付日時としての出力(データ設定式)
    - https://questetra.zendesk.com/hc/ja/articles/360024292672-R2271
*/

Download

2021-10-01 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/date-get-weekend-sunday-2021/
Addonファイルのインポートは Professional でのみご利用いただけます。
自由改変可能な JavaScript (ECMAScript) コードです。いかなる保証もありません。

Notes

  • 案件が自動処理工程に到達した際、日付データについて自動計算されます。
    • YYYY-MM-DD (日付型データの書式) や YYYY/MM/DD など
    • YYYY-MM-DD hh:mm (日時型データの書式) も起点日と見なすことが可能です。

Capture

任意日付の週末日曜日を取得します。日曜日が指定された場合、当日を返します。なお「翌週の月曜日」「当週の火曜日」を取得したい場合は、更に #q_date.addDays(1) や #q_date.addDays(-5) といった変換が必要です。
任意日付の週末日曜日を取得します。日曜日が指定された場合、当日を返します。なお「翌週の月曜日」「当週の火曜日」を取得したい場合は、更に #q_date.addDays(1) や #q_date.addDays(-5) といった変換が必要です。

Appendix

See also

日付, 曜日文字列の取得

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

上部へスクロール