Domanda

La .NET avere una costante per il numero di secondi in un giorno (86400)?

È stato utile?

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

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
   }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top