Moment.jsで稼働日を数える

数か月前に、Moment.jsのプラグインを公開しました。このプラグインを使用すると、次の計算が可能です。 指定された日付からN営業日後の日付はどうなりますか? 特定の範囲で何営業日ですか? 休日の形式で就業日と例外を構成する機能が利用可能です。



プラグインはgithubで見つけることができます: https : //github.com/andruhon/moment-weekday-calc



プラグインはbowerおよびnpmを介してインストールできます。

bower install moment-weekday-calc
      
      





 npm install moment-weekday-calc
      
      





プラグインは、Moment.jsにいくつかの機能を追加します。



各関数はisoプレフィックスで使用できます。このような関数は月曜日(1〜7)から始まる営業日を多く使用し、プレフィックスのない関数は日曜日(0〜6)から始まるアメリカ形式を使用します。



これらの関数を呼び出すには、引数のリストと名前付きパラメーターを持つオブジェクトの両方を呼び出すための多くのオプションがありますが、それらはリストしませんが、すぐに例を示します。



使用法:

isoプレフィックスを持つ関数の例のみを示します。



2月14日から23日までの金曜日はいくつですか?

 moment('14 Feb 2014').isoWeekdayCalc('23 Feb 2014',[5]); //2
      
      



(この場合、範囲の先頭はmomentオブジェクトから取得され、そこから関数を呼び出します)



2015年4月1日から2016年3月31日までの休日を除く営業日数は?

 moment().isoWeekdayCalc('1 Apr 2015','31 Mar 2016',[1,2,3,4,5]); //262
      
      



(ここでは、モーメントオブジェクトには日付が含まれていないため、開始日が最初の引数として指定されます)



そして、もしあなたがいくつかの休日を考慮に入れたら?

 moment().isoWeekdayCalc('1 Apr 2015','31 Mar 2016',[1,2,3,4,5],['6 Apr 2015','7 Apr 2015']); //260
      
      





オブジェクトで呼び出す:

 moment().isoWeekdayCalc({ rangeStart: '1 Apr 2015', rangeEnd: '31 Mar 2016', weekdays: [1,2,3,4,5], exclusions: ['6 Apr 2015','7 Apr 2015'] }) //260
      
      





週7日勤務している場合、2月2日から5営業日後になりますか?

 moment('2015-02-02').isoAddWeekdaysFromSet(5, [1,2,3,4,5,7]); //2015-02-08
      
      





5月9日を考慮して、5月4日から5営業日後?

 moment('2015-05-04').isoAddWeekdaysFromSet({ 'workdays': 5, 'weekdays': [1,2,3,4,5,6], 'exclusions': ['2015-05-09'] }); //2015-05-11
      
      





カレンダーの10月10日から11営業日後、営業日-水曜日-日曜日

 moment('2015-10-05').isoWeekdaysFromSetToCalendarDays(11, [3,4,5,6,7], ['2015-10-15']) //17
      
      





詳しくは、githubのREADMEをご覧ください。



健全な批判に感謝します。 プラグインが誰かに役立つことを願っています。



All Articles