Frage

Does .NET eine Konstante für die Anzahl der Sekunden in einem Tag (86400)?

War es hilfreich?

Lösung

Wenn Sie die Lesbarkeit wollen könnten Sie:

(new TimeSpan(1,0,0,0)).TotalSeconds

obwohl nur Ihre eigene const verwenden könnte klarer sein:)

Andere Tipps

Es ist kein konstanter Wert

http://en.wikipedia.org/wiki/Leap_second

Die Anzahl der Sekunden in einem regulären Tag ist 86400. Aber die Zeiten, wenn DST Änderungen passieren können kürzer oder länger sein.

Allerdings schreibe 24 * 60 * 60 ist keine schlechte Praxis überhaupt, und es ist sehr wahrscheinlich durch den Compiler in ausgekleideten zu sein, auch!

so viel Aufwand nur für nicht definiert, eine const für 60 x 60 x 24;)

Es ist keine Konstante, variiert die Anzahl der Sekunden in einem Tag je nach Tag und die Zeitzone. So ist es nicht etwas, dass Microsoft wahrscheinlich Angebot ist.

double secondsPerDay = TimeSpan.FromDays(1).TotalSeconds;

Dies war ein Kommentar von @ckarras. Hinzufügen es als Antwort, um es sichtbar.

Es ist eigentlich in dem .NET-Framework zur Verfügung. Sie können wie folgt aus, um es:

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;
  }
}

Bitte nicht, dass verwenden.

am nächsten Ihr bekommen w / o Sie eigene Angabe:

System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond

Sie könnten sogar wickeln diese als eine Erweiterung Methode ...

public static Extensions
{
   public static int SecondsPerDay( this System.TimeSpan ts )
   {
      return   System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
   }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top