找到两个日期之间的星期日数,如果星期日来自两个日期之间,然后减去星期日

问题描述:

在这个JavaScript中,我能够计算两个日期的差异,但无法找到日期之间的星期日。如果星期日发生在两个日期之间,则从日期中减去星期日并显示总天数。找到两个日期之间的星期日数,如果星期日来自两个日期之间,然后减去星期日

$(function() { 
    $(".datepicker").datepicker({ dateFormat: 'dd M y'}); 
    $(".datepicker_2").datepicker({ dateFormat: 'dd M y'}); 

    $('.datepicker').change(function() { 
     var start = $.datepicker.parseDate('dd M y', $(".datepicker").val()); 
     var end = $.datepicker.parseDate('dd M y', $(".datepicker_2").val()); 
     var total = 1; 
     if (start > end && end != null) { 
      alert("Begin date must be before End date"); 
      $('.txtnoofdays').val(null); 
      startdate.focus(); 

     } 
     if (end != null) { 

      var days = ((end - start)/1000/60/60/24) + total; 
      $('.txtnoofdays').val(parseInt(days)); 
     } 
    }); 

    $('.datepicker_2').change(function() { 
     var start = $.datepicker.parseDate('dd M y', $(".datepicker").val()); 

     var end = $.datepicker.parseDate('dd M y', $(".datepicker_2").val()); 
     var total = 1; 
     if (start > end) { 
      alert("Begin date must be before End date"); 
      $('.txtnoofdays').val(null); 
      startdate.focus(); 

     } 

     var days = ((end - start)/1000/60/60/24) + total; 
     $('.txtnoofdays').val(parseInt(days)); 

    }); 

}); 

你应该使用JavaScript Date对象,更尤其是getDay()方法。

然后你就可以增加你的start日起至end日期和次数,你遇到的周日,是这样的:

var start = $.datepicker.parseDate('dd M y', $(".datepicker").val()); 
var end = $.datepicker.parseDate('dd M y', $(".datepicker_2").val()); 

var startDate = new Date(start); 
var endDate = new Date(end); 
var totalSundays = 0; 

for (var i = startDate; i <= endDate;){ 
    if (i.getDay() == 0){ 
     totalSundays++; 
    } 
    i.setTime(i.getTime() + 1000*60*60*24); 
} 

console.log(totalSundays); 

诺塔Bene的:

我不明白你的“减法规则”