2 つの日付の間の平日を数える

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、与えられた 2 つの日付の間の平日の数を数える JavaScript プログラムを調べます。このプログラムは配列と reduce メソッドを使って、与えられた日付の範囲を反復処理し、各日付が平日かどうかを確認し、それに応じてカウントを増やします。ただし、このプログラムは祝日を考慮していません。

2 つの日付の間の平日を数える

2 つの日付の間の平日を数えるには、次の手順に従います。

  1. ターミナル/SSH を開き、コーディングを練習するために node と入力します。
  2. Array.from() を使って、startDateendDate の間の日数と同じ長さの配列を作成します。
  3. Array.prototype.reduce() を使って配列を反復処理し、各日付が平日かどうかを確認して count を増やします。
  4. 各ループで Date.prototype.getDate()Date.prototype.setDate() を使って startDate を次の日に更新し、1 日進めます。
  5. この関数は祝日を考慮していません。

これを実装するコードは次のとおりです。

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 でさらに実験を行って練習してください。