About the Week Number
ISO 8601 defines the week numbering used in most of Europe and Asia and in business software worldwide: weeks start on Monday, and week 1 is the week that contains the first Thursday of the year — equivalently, the week that contains 4 January. A week therefore always has seven days and belongs to exactly one year, but that year is not always the calendar year of the date: 1 January 2027 is a Friday and falls in week 53 of 2026, written 2026-W53-5, while 30 December 2024 is already in 2025-W01. The year of the week is called the ISO week-year.
Most years have 52 ISO weeks. A year has 53 when it starts on a Thursday, or on a Wednesday in a leap year — 2020, 2026 and 2032 are such long years, 71 out of every 400. The United States and Canada usually count differently: weeks start on Sunday and week 1 is simply the week that contains 1 January, so the first and the last week of the year can be shorter than seven days. In much of the Middle East the same rule is used with Saturday as the first day. The calculator shows all three, matching the results of ISOWEEKNUM and WEEKNUM in Excel.
All arithmetic is done on calendar dates in UTC, so no daylight-saving change or time zone can move a date into the neighbouring week. When you write the code yourself, use the function that is explicitly ISO: date.isocalendar() in Python, date("W") with date("o") for the year in PHP, EXTRACT(WEEK FROM d) in PostgreSQL and WEEK(d, 3) in MySQL. Pairing the ISO week with the calendar year (%Y instead of %G) is the classic bug that shows up only in the last days of December and the first days of January.
How to use it
- Pick a date — the calculator starts with today.
- Read the ISO week, the ISO week date, the US and Middle East week, the day of the year and the quarter.
- To go the other way, enter a year and a week number to get the Monday and Sunday of that week.
- Scroll the table to see all 52 or 53 weeks of the year; the selected week is highlighted.
- Copy the snippet for your language to compute the ISO week in your own code.