Time: safe way to go to next day?

E

Emmanuel Touzery

Hello,

When i have a Time object, to get to next day i do: myTime += (60*60*24)
Not very elegant, but it works and I didn't find a nicer way.
well, i thought it worked...

now we are going to change the time in europe...
So it breaks my assumption...

any proper way to fix it?

emmanuel

irb(main):008:0> now = Time.now
Tue Oct 21 08:14:44 Central Europe Daylight Time 2003
irb(main):009:0> todayMidnight = Time.local(now.year, now.month,
now.day, 0,0,0)
Tue Oct 21 00:00:00 Central Europe Daylight Time 2003 # today at 0:00

irb(main):010:0> todayMidnight + (60*60*24)
Wed Oct 22 00:00:00 Central Europe Daylight Time 2003 # tomorrow at 0:00

[..]

irb(main):014:0> todayMidnight + (60*60*24)*5
Sun Oct 26 00:00:00 Central Europe Daylight Time 2003 # sun at 0:00
irb(main):015:0> todayMidnight + (60*60*24)*6
Sun Oct 26 23:00:00 Central Europe Standard Time 2003 # <----------
!!!! sun at 23:00
 
N

nobu.nokada

Hi,

At Tue, 21 Oct 2003 15:16:44 +0900,
Emmanuel said:
When i have a Time object, to get to next day i do: myTime += (60*60*24)
Not very elegant, but it works and I didn't find a nicer way.
well, i thought it worked...

now we are going to change the time in europe...
So it breaks my assumption...

If you just want dates, what about date.rb?

require 'date'
today = Date.today
today.to_s # => "2003-10-21"
(today+5).to_s # => "2003-10-26"

I've not tested it with DST though.
 
E

Emmanuel Touzery

Hello,

If you just want dates, what about date.rb?

require 'date'
today = Date.today
today.to_s # => "2003-10-21"
(today+5).to_s # => "2003-10-26"

I've not tested it with DST though.
but where is all this stuff documented?
find.rb, base64.rb, date.rb, the other day someone wanted to remove
recursively a dir, and was given another one of those magic files...
which doc did i miss? :O(

otherwise, yes it's probably what i want. unfortunately i now sit on a
lot of code to convert :O(
if someone has a way with Time, it would simplify things for me...

thanks,

emmanuel
 
S

Sabby and Tabby

Emmanuel Touzery said:
otherwise, yes it's probably what i want. unfortunately i now sit on a
lot of code to convert :O(
if someone has a way with Time, it would simplify things for me...

Here's half a solution:

class Time
require 'date'
DAY = 60*60*24

alias add +
def +(s)
return add(s) unless s % DAY == 0
d = Date.new(year, mon, day) + s / DAY
Time.local(d.year, d.mon, d.day, hour, min, sec, usec)
end
end
 
G

gabriele renzi

il Tue, 21 Oct 2003 16:19:48 +0900, Emmanuel Touzery
but where is all this stuff documented?
find.rb, base64.rb, date.rb, the other day someone wanted to remove
recursively a dir, and was given another one of those magic files...
which doc did i miss? :O(

some is in the pickaxe.
Some you may just found looking at ruby-dir/lib, for the classes like
Array or String there is ri.

You may like to look at rj (as in 'ri'.succ) wich works like ri but
incorporates some more stuff (see on rubyforge).

ruby-doc.org has ri++ wich is 'ri + documentation via web' . Quite
useful too ;)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top