2013-01-10 22 views
0

在Python,如果我想檢查+ 24小時過後的具體日期,我會寫:如何在Ruby中執行timedelta和日期比較?

from datetime import datetime, timedelta 

some_date = datetime(2013, 1, 10, 11, 0) 
day = timedelta(1) 

# Checks if some_date + 1 day is before today's date 
print some_date + day < datetime.now() 

我怎麼能當一個特定的日期+1天建設1天,檢查的時間差在Ruby今天的日期之前?

+0

是[duration](http://rubyforge.org/projects/duration)你在找什麼? –

+0

我試圖從Ruby 1.9.3中使用庫而不訴諸外部的寶石。 –

回答

2
require 'time' 

xmas = DateTime.new(2013, 12, 25) 
puts x = xmas + 1 # 2013-12-26T00:00:00+00:00 
d = DateTime.now 
puts x > d  # true 
puts x - d  # 30167183979194791/86400000000000 (a Rational) 
puts d >> 12  # 2014-01-10T21:15:20+01:00 
+0

如果我想讓時差在幾秒或幾年內怎麼辦?這是如何完成的? –

+0

@ThierryLam看看這個[答案](http://stackoverflow.com/a/1679963/938695) –

+0

'1'實際上是秒,'86400'是第二天的正確值,至少在Ruby 1.9.3。也許1是另一個Ruby版本的一天。 –