.NET-Konstante für die Anzahl der Sekunden in einem Tag?
Frage
Does .NET eine Konstante für die Anzahl der Sekunden in einem Tag (86400)?
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
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
}
}