いいえを追加したい。将来の日付を取得する日数。そして週末はこれに含まれるべきではありません。どうすればこれを入手できますか?
var startdate = "2012 年 6 月 8 日"; 番号。追加する日数 = 10; 終了日は「2012 年 6 月 22 日」にする必要があります
いいえを追加したい。将来の日付を取得する日数。そして週末はこれに含まれるべきではありません。どうすればこれを入手できますか?
var startdate = "2012 年 6 月 8 日"; 番号。追加する日数 = 10; 終了日は「2012 年 6 月 22 日」にする必要があります
これを試して :
var startDate = "8-June-2012";
startDate = new Date(startDate.replace(/-/g, "/"));
var endDate = "", noOfDaysToAdd = 10, count = 0;
while(count < noOfDaysToAdd){
endDate = new Date(startDate.setDate(startDate.getDate() + 1));
if(endDate.getDay() != 0 && endDate.getDay() != 6){
//Date.getDay() gives weekday starting from 0(Sunday) to 6(Saturday)
count++;
}
}
ここにデモがあります
function calculateWorkingDayNumbers(startDate, offset)
{
var startDay = startDate.getDay();
if ((startDay % 7) === 1)
{
return ((offset - (offset % 7)) / 7) + ((offset % 7 === 1) ? (1) : (0));
}
else if (offset < 7)
{
if ((startDay === 6))
return 1 + ((offset > 0) ? (1) : (0));
else if (startDay === 0)
return 1 + ((offset === 6) ? (1) : (0));
}
else
{
return calculateWorkingDayNumbers(startDate, (((startDay % 7) + 1) % 7)) + calculateWorkingDayNumbers(startDate.setDate(startDate.getDate() + (((startDay % 7) + 1) % 7)), offset - (((startDay % 7) + 1) % 7));
}
}
この(テストされていない)コードは非常に高速です。また、休日を処理することでソリューションを改善することもできます。