我必须在javascript中计算日期前X个工作日。我有一系列假期,我该怎么做?
我可以使用我的日期进行一个while循环并将其更改为前一天并检查它是否是一个工作日,然后增加我的变量,但这是一个很好的方法吗?
答案 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;
或类似的东西找到实际的一天。