计算日期前的几个工作日

时间:2015-09-03 10:39:43

标签: javascript date

我必须在javascript中计算日期前X个工作日。我有一系列假期,我该怎么做?

我可以使用我的日期进行一个while循环并将其更改为前一天并检查它是否是一个工作日,然后增加我的变量,但这是一个很好的方法吗?

1 个答案:

答案 0 :(得分:0)

在普通语言中,您可以使用哈希集轻松解决此问题。它具有快速查找时间和随机访问。

然而,Javascript并不像所有其他孩子一样。所以它有自己特殊的方式来做到这一点。最简单的方法就是一个对象。

var holidays = {
1:true,
7:true,
18:true
}

我使用自新年以来的日子,但使用日期或其他东西没有任何问题。

然后你可以做一个小帮手功能:

var checkDate = function(value){
  return holidays [value] === true;
};

然后你只做checkDate(dayOfYear),如果是假期,它将返回true或false。然后你可以轻松做到

//This is more pseudocode than javascript, since I haven't done javascript in years
while checkDate(--dayOfYear === true)
    previousBussinesDay = dayOfYear;

或类似的东西找到实际的一天。