Javascript 查找周数(公历)





3.00/5 (8投票s)
2003 年 4 月 30 日
1分钟阅读

130884

2
一直在寻找一种可靠的方法来根据特定日期查找星期数吗? 不再搜索了,因为这里有解决方案,
引言
这篇文章简要介绍了基于特定日期获取星期数的方法。 星期数通常从第 1 周(一年中的第一周)到第 52 周,但在格里高利历中,有些年份有 53 周。 我自己一直在寻找一个查找星期数并使用格里高利历规则的 Javascript 代码。 但我找不到。 放弃搜索后,我开始自己编写这个函数。 我查阅了日历的规则,找到了 Peter-Paul Koch 提出的一个简洁的公式,将其实现为 Javascript,现在提供给大家免费使用。
使用代码
由于这段代码不是一个完整的项目,而只是一个代码片段,因此没有下载。 你只需要复制代码并将其粘贴到你喜欢的编辑器中即可。 该函数需要数值类型的年、月和日。 在 Javascript 中,月份是从 0 到 11,因此该函数期望该范围内的数字代表月份(例如,一月 = 0 .... 十二月 = 11)。 我没有编写一个调用该函数的代码,因为我认为如何使用它非常明显。
如下所示
function getWeek(year,month,day){
//lets calc weeknumber the cruel and hard way :D
//Find JulianDay
month += 1; //use 1-12
var a = Math.floor((14-(month))/12);
var y = year+4800-a;
var m = (month)+(12*a)-3;
var jd = day + Math.floor(((153*m)+2)/5) +
(365*y) + Math.floor(y/4) - Math.floor(y/100) +
Math.floor(y/400) - 32045; // (gregorian calendar)
//var jd = (day+1)+Math.Round(((153*m)+2)/5)+(365+y) +
// Math.round(y/4)-32083; // (julian calendar)
//now calc weeknumber according to JD
var d4 = (jd+31741-(jd%7))%146097%36524%1461;
var L = Math.floor(d4/1460);
var d1 = ((d4-L)%365)+L;
NumberOfWeek = Math.floor(d1/7) + 1;
return NumberOfWeek;
}
如果你在使用该函数时需要帮助,请在下面的论坛中提问。
关注点
格里高利历中存在一些世界各地并不常见的规则和方法。 我认为美国不使用这种星期数方法。 在实施该函数之前请考虑这一点。
历史
- getWeek 1.0 发布