Seltsames Verhalten von Time::utc bei Schalttagen

Hallo allerseits,

ich verwende die Funktion Time::utc, um aus day, month, year einen
Datumswert zu erzeugen. Beim 29. Februar der Jahre 1900 u. 2003 (beides
keine Schaltjahre) verhält sich utc unterschiedlich:
29.2.1900: -> Ausnahme
29.2.2003: -> 1.3.2003 !!!

Hier der Source, mit dem ich getestet habe
(ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32])
def CheckLeapYear(y, m, d)
begin
datum = Time.utc(y, m, d)
rescue
puts y.to_s + ‘-’ + m.to_s + ‘-’ + d.to_s + ’ is not valid.’
else
puts y.to_s + ‘-’ + m.to_s + ‘-’ + d.to_s + ’ -> ’ + datum.to_s
end
end
CheckLeapYear(1900, 2, 29)
CheckLeapYear(2003, 2, 29)

Hier das Ergebnis:
1900-2-29 is not valid.
2003-2-29 -> Sat Mar 01 00:00:00 UTC 2003

Kann das jemand erklären ?

Joachim

Hallo Joachim,

Vielleicht hilft dir dieser Link weiter:
http://www.ruby-forum.com/topic/136804

Herzliche
Grüße,Michael

Am 12.01.2008 20:34 Uhr schrieb “Joachim Mützel” unter
[email protected]:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs