Introduction
This short article reveals the javascript-way to get week-number based on a certain date. Week-number normally spans from week 1 (first week of a year) to week 52, but in the gregorian calendar some years have 53 weeks. I have myself looked around for a javascript to find weeknumber and use the gregorian calendar rules. But I could not find any. Giving up the search I started the work making the function by myself. I looked up the rules of the calendar, found a neat formel by Peter-Paul Koch, implemented it in javascript, and here it is for you all to use free of charge.
Using the code
Since this code is not a complete project, rather just a snippet, there is no download. You just have to copy the code and paste it in your favourite editor. The function expects numeric values for year, month and day. In Javascript the months are 0 to 11, so the funtion expects that span of numbers representing the months (ex. january = 0 .... desember = 11). I didn't bother to write a code calling the function as I think it is pretty obvious how to use it.
Here it is:
function getWeek(year,month,day){
month += 1;
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;
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;
}
Please ask in the forum below if you need help using the function.
Points of Interest
There are rules and ways in the Gregorian calendar that is not common all around the world. I believe USA dont use this week-number method. Consider this before implementing the function.
History
- getWeek 1.0 released