31
submitted 11 months ago by yogthos@lemmy.ml to c/programmerhumor@lemmy.ml
you are viewing a single comment's thread
view the rest of the comments
[-] ricecake@sh.itjust.works 1 points 11 months ago

So, the flip side to that is that sometimes you need to add one month to a date, because that sometimes how human systems are written.
By not providing a function that does that, you're just pushing the confusion down to the developer, who is more likely to make terrible errors in the process, get frustrated, or use one of N different competing libraries, each of which chose a different answer.

Omitting functionality that can behave unintuitively in certain circumstances means leaving out a lot of functionality that people need.

Like, "decimal numbers" go pathological in certain cases. So do Unicode characters. Don't even bother thinking about connecting to the network.

[-] railsdev@programming.dev 0 points 11 months ago* (last edited 11 months ago)

In Ruby (with ActiveSupport) I would do something like 4.days.from_now or 30.days.from_now.

If I really needed “one month from now” on some specific day of the month that not every month has I’d do:

def 31st_of_next_month
  next_month = (Time.current.end_of_month + 1.day).beginning_of_month
  day = next_month + 31.days
  return day if day.month == next_month

  # last day of month if no 31st
  next_month.end_of_month.beginning_of_day
end

Disclaimer: I’m laying in bed typing this on mobile. The code probably sucks but I’m writing for illustrative purposes.

[-] ricecake@sh.itjust.works 2 points 11 months ago

Why wouldn't you just use the ruby functions for adding a month to a date?

https://ruby-doc.org/stdlib-2.5.1/libdoc/date/rdoc/Date.html#method-i-3C-3C

It seems really weird that there's so much pushback against "date time math is tricky, read the manual to find out exactly which compromise your library chose".

this post was submitted on 06 Nov 2023
31 points (68.7% liked)

Programmer Humor

32302 readers
426 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS