costante NET per numero di secondi in un giorno?
Domanda
La .NET avere una costante per il numero di secondi in un giorno (86400)?
Soluzione
Se si vuole migliorare la leggibilità è possibile utilizzare:
(new TimeSpan(1,0,0,0)).TotalSeconds
se usando solo il proprio const potrebbe essere più chiaro:)
Altri suggerimenti
Non è un valore costante
Numero di secondi in un normale giorno è 86400. Ma i giorni in cui si verificano modifiche dell'ora legale potrebbe essere più o meno lungo.
Tuttavia, la scrittura di 24 * 60 * 60 non è una cattiva pratica a tutti, ed è più probabile che sia in-allineati dal compilatore, troppo!
tanta fatica solo per non definire un const per 60 x 60 x 24;)
Non è una costante, il numero di secondi in un giorno varia a seconda del giorno e il fuso orario. Quindi non è qualcosa che Microsoft rischia di offrire.
double secondsPerDay = TimeSpan.FromDays(1).TotalSeconds;
Questo è stato un commento da @ckarras. L'aggiunta come una risposta per renderlo più visibile.
E 'effettivamente disponibile nel framework .NET. Si può raggiungere in questo modo:
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;
}
}
Si prega di non usare quella.
più vicino la vostra intenzione di ottenere w / o specificando si possiede:
System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
si potrebbe anche avvolgere questo come un metodo di estensione ...
public static Extensions
{
public static int SecondsPerDay( this System.TimeSpan ts )
{
return System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
}
}