使用Javascript获取工作日

前端之家收集整理的这篇文章主要介绍了使用Javascript获取工作日前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在两个约会之间得到工作日.
示例:stdate = 28/10/2011 and endate = 04/11/2011.这应该是6个工作日,但它只给5天.
  1. var workingdays = 0;
  2. var weekday = new Array(7);
  3. weekday[0]="Sunday";
  4. weekday[1]="Monday";
  5. weekday[2]="Tuesday";
  6. weekday[3]="Wednesday";
  7. weekday[4]="Thursday";
  8. weekday[5]="Friday";
  9. weekday[6]="Saturday";
  10.  
  11. while (stdate <= endate)
  12. {
  13. var day = weekday[stdate.getDay()];
  14. if(day != "Saturday" && day != "Sunday")
  15. {
  16. workingdays++;
  17. }
  18. console.log(weekday[stdate.getDay()]);
  19. stdate = new Date(stdate.getTime() + 86400000);
  20. }

控制台日志显示以下结果.

  1. Friday
  2. Saturday
  3. Sunday
  4. Sunday
  5. Monday
  6. Tuesday
  7. Wednesday
  8. Thursday

由于某种原因,周日出现两次.任何帮助,将不胜感激.

解决方法

夏令时.

由于你要在24小时内添加日期,所以在周日的第二天还不足以让你到达,因为那个特别的星期天有25个小时.

您应该添加一天而不是添加小时:

  1. stdate = new Date(stdate.getFullYear(),stdate.getMonth(),stdate.getDate() + 1);

说明:当您使用超出范围的日期调用Date构造函数时,它将自动换行到下个月,即新日期(2010,9,32)为您提供11月的第一个月.

猜你在找的JavaScript相关文章