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

  • bleistift2@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    17
    ·
    4 days ago

    If you think looking at Thursday seems like a random choice: It’s basically a majority vote among the days of the week. If Thursday is in the new year, then 4 days (Thu–Sun) are in the new year. If Thursday is in the old year, then 4 days are in the old year (Mon–Thu).

    • ttayh@lemmy.zip
      link
      fedilink
      arrow-up
      17
      ·
      4 days ago

      The 1st day of the feek is not universal. I grew up with the week starting on sunday

      • bleistift2@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        17
        ·
        4 days ago

        Yes, another thing in the neverending list of shit you have to learn at some point if you’re any kind of programmer.

        Some people start their week on the wrong day.

      • sergiu@lemmy.world
        link
        fedilink
        arrow-up
        8
        ·
        4 days ago

        Is this a thing outside the USA? It always bugs me when apps default to this. How does it make any sense for the week to start with the weekend?

        • Kevin@programming.dev
          link
          fedilink
          arrow-up
          3
          ·
          3 days ago

          I’ve generally seen Sunday to be the start of the week here, my current headcanon for it is that Sunday and Saturday sort of book-end on both sides of the week, hence week-end_s_ plural

          • sergiu@lemmy.world
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            3 days ago

            I’m just curious how this works in practice.

            When you say something like “Let’s meet up this weekend”, is it implied that you will meet on Saturday, since Sunday is the other end of next week, so technically a different weekend?

            • agamemnonymous@sh.itjust.works
              link
              fedilink
              arrow-up
              1
              ·
              2 days ago

              Honestly I think of Friday night and Saturday. Sunday feels more like its own thing,the beginning of the week. It’s the day you do any unfinished chores to prepare for the week. If sometime wanted to “meet up this weekend” I would not assume they meant Sunday, unless they wanted to grab brunch.

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

              The weekend, and more specifically “this weekend” or “this coming weekend” means both days - Saturday and Sunday.

              Sunday being a part of next week on a written calendar does not even register as a potential date “problem” with my brain in day-to-day talk.