Click here to Skip to main content
13,346,708 members (69,151 online)
Click here to Skip to main content
Add your own
alternative version


16 bookmarked
Posted 29 Apr 2003

Javascript to find the weeknumber (Gregorian Calendar)

, 29 Apr 2003
Rate this:
Please Sign up or sign in to vote.
Been searching the Internet for a waterproof way to find weeknumber based on a certain date? Search no more, because here is the solution,


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){
    //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;        

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.


- getWeek 1.0 released


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

tommy skaue
Web Developer
Norway Norway
Tommy live in Tromsø, a city far up north in Norway. He does programming and webdevelopment for a living.

You may also be interested in...


Comments and Discussions

QuestionPlease Create a Cut & Paste WEEKLY Redirect for Non-Profit Church Site That Will Be Useful to Many Web Developers Pin
pastormom7-Sep-08 6:47
memberpastormom7-Sep-08 6:47 
GeneralCurent month (monthString) Pin
nikiobicata30-Jan-08 3:26
membernikiobicata30-Jan-08 3:26 
GeneralRe: Curent month (monthString) Pin
nikiobicata31-Jan-08 12:18
membernikiobicata31-Jan-08 12:18 
GeneralRe: Curent month (monthString) Pin
tommy skaue31-Jan-08 22:45
membertommy skaue31-Jan-08 22:45 
GeneralDate Pin
kas20066-May-06 5:10
memberkas20066-May-06 5:10 
GeneralRe: Date Pin
tommy skaue7-May-06 9:43
membertommy skaue7-May-06 9:43 
GeneralA better implementation Pin
Alvaro Mendez16-Dec-05 8:52
memberAlvaro Mendez16-Dec-05 8:52 
GeneralRe: A better implementation Pin
happy_she6-Apr-06 5:48
memberhappy_she6-Apr-06 5:48 
AnswerRe: A better implementation Pin
hrabe9-May-07 15:05
memberhrabe9-May-07 15:05 
GeneralSource of formula Pin
tommy skaue9-May-03 4:59
membertommy skaue9-May-03 4:59 
GeneralInteresting facts Pin
Sire4048-May-03 23:53
memberSire4048-May-03 23:53 
GeneralRe: Interesting facts Pin
tommy skaue9-May-03 0:10
membertommy skaue9-May-03 0:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.180111.1 | Last Updated 30 Apr 2003
Article Copyright 2003 by tommy skaue
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid