2つの日付の間の稼働日を計算しているjavascript関数がありますが、問題は休暇とはみなされません。例外の配列に休日を追加するなど、この関数を変更するにはどうすればよいですか?Javascriptの2つの日付の間の休日を計算する休日を除いて
この質問はインターネットで検索されましたが、休日の例外については見つかりませんでした。
例の休日アレイの場合:
var holidays = ['2016-05-03','2016-05-05'];
そして、私はこれを計算する機能を持っている:たぶんそこ
:持っているが、jsfiddleの例を作っ
function workingDaysBetweenDates(d0, d1) {
var startDate = parseDate(d0);
var endDate = parseDate(d1);
// Validate input
if (endDate < startDate)
return 0;
// Calculate days between dates
var millisecondsPerDay = 86400 * 1000; // Day in milliseconds
startDate.setHours(0,0,0,1); // Start just after midnight
endDate.setHours(23,59,59,999); // End just before midnight
var diff = endDate - startDate; // Milliseconds between datetime objects
var days = Math.ceil(diff/millisecondsPerDay);
// Subtract two weekend days for every week in between
var weeks = Math.floor(days/7);
days = days - (weeks * 2);
// Handle special cases
var startDay = startDate.getDay();
var endDay = endDate.getDay();
// Remove weekend not previously removed.
if (startDay - endDay > 1)
days = days - 2;
// Remove start day if span starts on Sunday but ends before Saturday
if (startDay == 0 && endDay != 6)
days = days - 1
// Remove end day if span ends on Saturday but starts after Sunday
if (endDay == 6 && startDay != 0)
days = days - 1
return days;
}
function parseDate(input) {
// Transform date from text to date
var parts = input.match(/(\d+)/g);
// new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]])
return new Date(parts[0], parts[1]-1, parts[2]); // months are 0-based
}
Jqueryで簡単に使用できる他の関数です?
投稿する前に検索してください。これは尋ねられ、繰り返し答えられました。 –
*「これを計算する関数があります」*質問に関連している場合は、リンクされているだけでなく質問に入れます。もしそうでなければ、おそらく言及する価値はないでしょう。 –
説明に追加された機能 – AlexIL