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

  • locuester@lemmy.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    but the first month is 0-indexed

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

      • locuester@lemmy.zip
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days 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

        • lad@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days 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
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 days ago

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

            I’m just correcting the strange wording.