2009-04-23 10 views
5

¿La estructura DateTime se ocupa de esto? ¿Hay alguna otra clase/estructura?¿Se toman segundos en cuenta en dotNet (o C#)?

ACTUALIZACIÓN:

Ahora he leído que leapseconds solamente se anuncian 6 meses de antelación, ya que la rotación de la Tierra no es tan predecible ...

Ya que no hay posibilidad de poner en práctica que en el futuro las fechas, me puedo imaginar que simplemente los han omitido?

+0

¿Qué quiere decir con "take care of this"? En contraste con los años bisiestos donde tiene un día adicional (29 de febrero), los segundos intercalares no son tan específicos; solo son un segundo retraso entre dos minutos, sin esta distinción explícita como el 29 de febrero. Así que, básicamente, esperaría o le agradaría un TimeSpan entre fechas con un segundo intercalado para devolver los secons adicionales en la propiedad TotalSeconds, por ejemplo. – Lucero

+0

de hecho, y tiene momentos como el nuevo DateTime (2008, 12, 2, 12, 34, 60) – Peter

Respuesta

2

creo que la respuesta a ambas preguntas es No. Referencia: http://silverlight.net/forums/t/12114.aspx

+0

El enlace no proporciona la respuesta. –

+0

@David. Eso es porque eliminaron ese uri. Es hace 7 años. –

3

Por lo que sé, la estructura DateTime de .NET NO maneja automáticamente los segundos intercalares. No creo que puedas establecer segundos superiores a 59 en DateTime de .NET. Sin embargo, en Java, puede establecer segundos para que sean 0 - 61, porque el estándar ISO permite 2 segundos bisiestos por año.

EDITAR: lo probé por diversión:

Tratando Dim dt As New DateTime(2008, 12, 2, 12, 34, 61) en .NET tiros este mensaje (61 es el número de segundos):

"hora, minuto y segundo parámetros describe un Date-Time no representable ".

+1

Un vistazo rápido a la implementación de DateTime en Reflector muestra la lógica en el ayudante privado TimeToTicks: ((second <0) | | (segundo> = 60)) ... lanzar ... – Richard

Cuestiones relacionadas