はじめに
この実験では、与えられた 2 つの日付の間の平日の数を数える JavaScript プログラムを調べます。このプログラムは配列と reduce メソッドを使って、与えられた日付の範囲を反復処理し、各日付が平日かどうかを確認し、それに応じてカウントを増やします。ただし、このプログラムは祝日を考慮していません。
2 つの日付の間の平日を数える
2 つの日付の間の平日を数えるには、次の手順に従います。
- ターミナル/SSH を開き、コーディングを練習するために
nodeと入力します。 Array.from()を使って、startDateとendDateの間の日数と同じ長さの配列を作成します。Array.prototype.reduce()を使って配列を反復処理し、各日付が平日かどうかを確認してcountを増やします。- 各ループで
Date.prototype.getDate()とDate.prototype.setDate()を使ってstartDateを次の日に更新し、1 日進めます。 - この関数は祝日を考慮していません。
これを実装するコードは次のとおりです。
const countWeekDaysBetween = (startDate, endDate) =>
Array.from({ length: (endDate - startDate) / (1000 * 3600 * 24) }).reduce(
(count) => {
if (startDate.getDay() % 6 !== 0) count++;
startDate = new Date(startDate.setDate(startDate.getDate() + 1));
return count;
},
0
);
この関数をテストするには、次のコードを使えます。
countWeekDaysBetween(new Date("Oct 05, 2020"), new Date("Oct 06, 2020")); // 1
countWeekDaysBetween(new Date("Oct 05, 2020"), new Date("Oct 14, 2020")); // 7
まとめ
おめでとうございます!2 つの日付の間の平日を数える実験を完了しました。技術力を向上させるために、LabEx でさらに実験を行って練習してください。