Was ist der beste Weg, um den Tag des Jahres für ein bestimmtes Datum in Ruby zu bekommen?Wie bekommt man den Tag des Jahres in Rubin?
Zum Beispiel: 31/dec/2009
sollte day 365
zurückkehren und 01/feb/2008
day 32
Was ist der beste Weg, um den Tag des Jahres für ein bestimmtes Datum in Ruby zu bekommen?Wie bekommt man den Tag des Jahres in Rubin?
Zum Beispiel: 31/dec/2009
sollte day 365
zurückkehren und 01/feb/2008
day 32
Grundsätzlich (hier gezeigt in irb):
>> require 'date'
>> Date.today.to_s
=> "2009-11-19"
>> Date.today.yday()
=> 323
Für jedes Datum:
>> Date.new(y=2009,m=12,d=31).yday
=> 365
Oder:
>> Date.new(2012,12,31).yday
=> 366
@see auch: Rubin Documentation
zurückkehren sollten Sie vielleicht in der Lage sein, etwas mit civil_to_jd zu tun (y, m, d, sg = GREGORIANA)
von
Verwenden Date.new(year, month, day)
ein Date
Objekt für das Datum erstellen Sie benötigen, dann bekommen der Tag des Jahres mit yday
:
>> require 'date'
=> true
>> Date.new(2009,12,31).yday
=> 365
>> Date.new(2009,2,1).yday
=> 32
Date#yday
ist was Sie suchen.
Hier ist ein Beispiel:
require 'date'
require 'test/unit'
class TestDateYday < Test::Unit::TestCase
def test_that_december_31st_of_2009_is_the_365th_day_of_the_year
assert_equal 365, Date.civil(2009, 12, 31).yday
end
def test_that_february_1st_of_2008_is_the_32nd_day_of_the_year
assert_equal 32, Date.civil(2008, 2, 1).yday
end
def test_that_march_1st_of_2008_is_the_61st_day_of_the_year
assert_equal 61, Date.civil(2008, 3, 1).yday
end
end
Ich mag die Verwendung von Tests als Beispiele +1 – Toby
Hinweis: Sie müssen 'require‚date''first – 203
@ 203, danke, meine Antwort festgelegt. – miku
Cool, dass Sie zeigen, dass yday nicht für den Vergleich über Schaltjahre nach Februar ist :) – toxaq