• ChaoticNeutralCzech
    link
    fedilink
    English
    arrow-up
    98
    ·
    1 month ago

    Inaccurate. Signed 32-bit integer epoch overflows from January 2038 to December 1901.

    • saigot@lemmy.ca
      link
      fedilink
      arrow-up
      36
      ·
      1 month ago

      If the calendar was written in C++ or many of it’s derivatives then signed integer overflow is undefined behaviour and it could technically choose to do anything it damn well wants (unsigned integers actually do have defined overflow behaviour). Something tells me the runtime of a paper calendar is anything but standard :D

    • 🔍🦘🛎@lemmy.world
      link
      fedilink
      English
      arrow-up
      10
      arrow-down
      1
      ·
      1 month ago

      It’s not the overflow that’s the issue, but a calculation failure that causes the date value to be “0” and thus list the date as January 1, 1970. It’s happened to me several times with Pokemon GO.

      • ChaoticNeutralCzech
        link
        fedilink
        English
        arrow-up
        5
        ·
        edit-2
        1 month ago

        In this case, it is the overflow as 01111111...11111111+1 in binary becomes 10000000...00000000. (Yes, negative numbers in signed integer format are represented as starting with 1)

        (GIF)(Why you should trust this)

        But yes, some programs erroneously fall back to 0 in case of a null value, which corresponds to 1970-01-01. That’s why so many geotags were recorded for Null Island.