2009-04-23 6 views
5

Czy struktura DateTime dba o to? Czy jest jakaś inna klasa/struktura?Czy leapseconds brane są pod uwagę w dotNet (lub C#)?

UPDATE:

teraz przeczytałem że leapseconds ogłaszane są tylko 6 miesięcy wcześniej, ponieważ obrót Ziemi nie jest tak przewidywalny ...

Ponieważ nie ma możliwości do wdrożenia, że ​​w przyszłości Daty, mogę sobie wyobrazić, że po prostu je pominięto?

+0

Co masz na myśli mówiąc "zaopiekuj się tym"? W przeciwieństwie do lat przestępnych, w których masz dodatkowy dzień (29 lutego), sekundy przestępne nie są tak konkretne; to tylko jedna sekunda opóźnień między dwiema minutami, bez tego wyraźnego rozróżnienia, jak 29 lutego. W zasadzie można się spodziewać, że TimeSpan będzie się miewał między datami ze skokiem drugim, aby zwrócić dodatkowe atrybuty w usłudze TotalSeconds? – Lucero

+0

Rzeczywiście, i mają czasy takie jak Nowy DateTime (2008, 12, 2, 12, 34, 60) – Peter

Odpowiedz

3

O ile mi wiadomo, struktura DateTime .NET NIE obsługuje automatycznie sekund przestępnych. Nie sądzę, że możesz ustawić sekundy wyższe niż 59 w DataTime .NET. Jednak w Javie możesz ustawić sekundy na 0 - 61, ponieważ norma ISO pozwala na 2 sekundy przestępne rocznie.

EDIT: próbowałem go dla zabawy:

Trying Dim dt As New DateTime(2008, 12, 2, 12, 34, 61) w .NET zgłasza ten komunikat (61 oznacza liczbę sekund):

„Godzina, minuty i sekundy parametry opisać niemożliwy do reprezentowania DateTime. "

+1

Szybkie spojrzenie na implementację DateTime w Reflectorze pokazuje logikę w prywatnym pomocniku TimeToTicks: ((drugi <0) | | (drugi> = 60)) ... rzut ... – Richard

Powiązane problemy