JavaScriptを使用して平日を数える方法


方法1: ループを使用して日数を数える方法

function countWeekdays(startDate, endDate) {
  var count = 0;
  var currentDate = new Date(startDate);
  while (currentDate <= endDate) {
    var dayOfWeek = currentDate.getDay();
    if (dayOfWeek !== 0 && dayOfWeek !== 6) { // 0:日曜日, 6:土曜日
      count++;
    }
    currentDate.setDate(currentDate.getDate() + 1);
  }
  return count;
}
// 使用例:
var startDate = new Date('2024-01-01');
var endDate = new Date('2024-12-31');
var weekdaysCount = countWeekdays(startDate, endDate);
console.log('平日の数:', weekdaysCount);

方法2: Moment.jsを使用する方法

Moment.jsは、日付と時間を操作するための強力なライブラリです。

まず、Moment.jsをプロジェクトにインストールし、以下のコードを使用します。

// Moment.jsをインストールした場合
var startDate = moment('2024-01-01');
var endDate = moment('2024-12-31');
var weekdaysCount = 0;
while (startDate.isSameOrBefore(endDate)) {
  if (startDate.day() !== 0 && startDate.day() !== 6) {
    weekdaysCount++;
  }
  startDate.add(1, 'day');
}
console.log('平日の数:', weekdaysCount);

方法3: カレンダーライブラリを使用する方法

カレンダーライブラリを使用すると、より高度な日付操作が可能になります。例として、date-fnsライブラリを使用した方法を示します。

まず、date-fnsをインストールし、以下のコードを使用します。

// date-fnsをインストールした場合
const { eachDayOfInterval, isWeekend } = require('date-fns');
const startDate = new Date('2024-01-01');
const endDate = new Date('2024-12-31');
const weekdays = eachDayOfInterval({ start: startDate, end: endDate }).filter(
  (date) => !isWeekend(date)
);
console.log('平日の数:', weekdays.length);

これらの方法を使用すると、JavaScriptで平日を数えることができます。適切な方法を選択し、プロジェクトに組み込むことができます。