假设我有开始日期=2015年7月16日和结束日期=2015年7月20日。这两个日期存储在SharePoint列表中。
如果用户选择与SharePoint列表中的日期相同的确切日期,则可以计算总天数=2,这意味着不计算其他日期。
请问是否有人能帮忙解决这个问题?
我使用以下代码计算不包括周末在内的日期差异的总天数。但我找不出如何计算选定日期的总天数而不计算其他日期的方法。
function workingDaysBetweenDates(startDate,endDate) {
// Validate input
if (endDate < startDate)
return 'Invalid !';
// 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);
var 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;
}
10/27/17
,结束日期为10/30/17
。代码只会计算一天而不是两天。 - Markus