.NET constante para el número de segundos en un día?
Pregunta
¿El .NET tiene una constante para el número de segundos en un día (86400)?
Solución
Si desea legibilidad puede usar:
(new TimeSpan(1,0,0,0)).TotalSeconds
aunque sólo usar su propio const podría ser más claro:)
Otros consejos
No es un valor constante
Número de segundos en un normal día es 86400. Sin embargo, los días en que suceden los cambios de horario de verano puede ser más corto o más largo.
Sin embargo, escribir 24 * 60 * 60 no es una mala práctica en absoluto, y es más probable que sea en forrado por el compilador, también!
tanto esfuerzo sólo para no definir un const para 60 x 60 x 24;)
No es una constante, el número de segundos en un día varía en función del día y la zona horaria. Por lo tanto, no es algo que Microsoft es probable que oferta.
double secondsPerDay = TimeSpan.FromDays(1).TotalSeconds;
Este fue un comentario de @ckarras. Añadiéndolo como una respuesta para que sea más visible.
Es realmente disponible en la plataforma .NET. Se puede llegar a ella de esta manera:
using System;
using System.Reflection;
public static class DateTimeHelpers {
public static int GetSecondsPerDay() {
object obj = typeof(DateTime).GetField("MillisPerDay", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null);
return (int)obj / 1000;
}
}
Por favor, no use eso.
más cerca que vas a conseguir w / o que especifique propia:
System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
que incluso podría terminar con esto como un método de extensión ...
public static Extensions
{
public static int SecondsPerDay( this System.TimeSpan ts )
{
return System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
}
}