126

The other day at work I stumbled upon this bug and thought it was worth to write a blog post about. Spoiler: It has nothing to do with timezones!

TLDR: According to ISO standard 8601 (which is what Python's date.isocalendar().week uses for example), the first week of the year is the week with the first Thursday of the year. So sometimes the first few days of January belong to the last week of previous year, and sometimes the last few days of December belong to the first week of next year :D

you are viewing a single comment's thread
view the rest of the comments
[-] spartanatreyu@programming.dev 0 points 1 day ago* (last edited 19 hours ago)

Also: January is not always the 1st month, sometimes it is the 0th.

1/1/2026 can be both Jan 1st, and Feb 1st.


For the downvoters, try it in your browser's terminal:

let test = new Date("1-1-2026");

console.log(`Year: ${test.getFullYear()}, Month: ${test.getMonth()}, Day: ${test.getDate()}`);
// Prints -> Year: 2026, Month: 0, Day: 1

//
***
---
***
---
***
---
***
---

// test.getFullYear() returns the year, but test.getYear() only returns the number of years since 1900

// test.getMonth() returns the month, but the first month is 0-indexed

// test.getDate() returns the day, 1-indexed, but test.getDay() returns the current day right now and not the day of the date object

[-] locuester@lemmy.zip 1 points 17 hours ago

but the first month is 0-indexed

U mean “the months are zero indexed” and “the first month is 0”

[-] spartanatreyu@programming.dev 1 points 14 hours ago* (last edited 14 hours ago)

The first month is inputted with a 1 and exported as a 0.

The first day is inputted with a 1 and exported as a 1.

[-] locuester@lemmy.zip 2 points 11 hours ago

I understand that. Because the months are zero indexed. But it’s not just the first month that’s “0-indexed”. The list of months is zero indexed. Perhaps I’m arguing semantics - but was simply adding clarity for the reader.

1st becomes 0, 2nd becomes 1, 3rd becomes 2

[-] sukhmel@programming.dev 1 points 9 hours ago

Yeah, but when days are 1-indexed and month are 0-indexed you just feel it's a very JavaScript thing to do

[-] locuester@lemmy.zip 2 points 5 hours ago

Yeah absolutely. I’m not disagreeing or saying it’s good.

I’m just correcting the strange wording.

load more comments (2 replies)
load more comments (2 replies)
this post was submitted on 24 Mar 2026
126 points (97.7% liked)

Programming

26232 readers
350 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS