this post was submitted on 14 Dec 2023
989 points (99.2% liked)

xkcd

8814 readers
97 users here now

A community for a webcomic of romance, sarcasm, math, and language.

founded 1 year ago
MODERATORS
 

https://xkcd.com/2867

Alt text:

It's not just time zones and leap seconds. SI seconds on Earth are slower because of relativity, so there are time standards for space stuff (TCB, TGC) that use faster SI seconds than UTC/Unix time. T2 - T1 = [God doesn't know and the Devil isn't telling.]

you are viewing a single comment's thread
view the rest of the comments
[–] drislands@lemmy.world 5 points 11 months ago* (last edited 11 months ago) (1 children)

To break it down a bit further, the code that was provided is specifically trying to get the last day of a month, which I'll call Month X since it will vary. The code is doing these things, in this order:

  1. Get the month after Month X
  2. If Month X is 12 (aka December) get Month 1 instead (aka January)
  3. Get the Date that is day 1 of the Month from step 2
  4. Get the Date that is one day before the Date from step 3

All this to get the last day of the month from Month X. The reason they did it this way is so they didn't have to say "Is this February? Then get day 28. Is this January/March/etc? then get day 31." and so on.

The code that the other user provided will instead get the last day of Month X without having to do all those steps. It's doing something in the background to get the same data, but the coder doesn't have to worry about exactly how because they can trust it will work as expected.

It ultimately boils down to the user carving out a round piece of wood, fitting it on an axle and bolting it on, then to find someone already has cheap wheels for sale that are more stable than what they just made.

[–] Jarix@lemmy.world 2 points 11 months ago (1 children)
[–] drislands@lemmy.world 3 points 11 months ago

You're welcome! A big part of coding is finding how other people solved the problems you're solving and finding how to incorporate their work into yours.