方法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で平日を数えることができます。適切な方法を選択し、プロジェクトに組み込むことができます。