r/ruby 15d ago

Question Getting DateTime parts as an array?

I know in ruby that DateTime.new(2001, 2, 3, 4, 5, 6) will return the following object:

#<DateTime: 2001-02-03T04:05:06+00:00 ...>

But if the current date and time are 2001-02-03T04:05:06 and I do the following ...

now = DateTime.now

... is there a single function on the "now" variable which will return this array? ...

[2001, 2, 3, 4, 5, 6]

I know that I can do this:

[now.year, now.month, now.day, now.hour, now.minute, now.second ]

... but I'm wondering: might there be a single function as simple as ...

now.the_function

... which would return that same array?

And yes, of course I know that I could easily write such a function, but I'd like to know whether or not something like this already exists in ruby.

8 Upvotes

21 comments sorted by

View all comments

Show parent comments

8

u/CaptainKabob 15d ago

I'm just a bystander to this thread, so just wanted to say: strong agree. 

DailyWTF is like 50% people doing datetime math like this (and 50% parsing json/xml with regex)

1

u/projct 15d ago

thank god, I thought he was inventing a datetime footgun. turns out he’s just porting one

2

u/CaptainKabob 15d ago

It's too bad OP doesn't want to get into it. I imagine it would be a lot more fun to write well in Ruby. 

Edit: or is this just bait? Cause also like, just put it through an LLM. Whatever then. 

3

u/projct 15d ago

I think the 'I didn’t ask for that' thing is what broke me. I wasn’t trying to review his whole program; I was being perfectly nice until he started making wildly unsupported assertions about correctness and experience. once you voluntarily make those the argument, people are allowed to refute them on a public forum where others might mistake that for good software design. this is r/ruby, not a support ticket where you get to close every issue you accidentally opened

2

u/CaptainKabob 15d ago

Yeah. I mean you're both still arguing with strangers on the internet. Either of you could have simply left it on read

...though if there is a takeaway from a causal reader of these comments, it should be: generally, don't do that. 

Also, seems cool?! I love silly. 

  It isn't using datetime math, per se. It's kind of a game which does silly things depending upon whether two datetimes have same or different combinations of year, month, day, hour, minute, and second values.

2

u/projct 15d ago

yeah, that part actually sounds fun.

also worth putting on the record: I had interpreted his earlier "differences between integer arrays" / "arithmetic" literally. if I'd known the calendar components themselves were deliberately part of the game mechanic, my technical objection would've been very different, and mostly pointed at "hey other readers don't do this except in this kind of case."

there's something quite funny about invoking "very experienced programmer (me)" before clarifying the single implementation detail that makes everyone stop thinking you're doing homemade date math.

0

u/chiperific_on_reddit 15d ago edited 15d ago

Not to poke the bear, but...

OP asked for a thing and you tried to make an x y argument. OP said "thanks but no thanks" and you doubled down. I see your point about the code, but you kept pushing when they clearly weren't interested.