Pregunta

¿El .NET tiene una constante para el número de segundos en un día (86400)?

¿Fue útil?

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

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
   }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top