Question

Est-ce que .NET une constante pour le nombre de secondes dans une journée (86400)?

Était-ce utile?

La solution

Si vous voulez la lisibilité, vous pouvez utiliser:

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

si juste en utilisant votre propre const pourrait être plus clair:)

Autres conseils

Il est pas une valeur constante

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

Nombre de secondes dans une régulière jour est 86400. Mais les jours où les changements se produisent DST peuvent être plus ou moins longue.

Cependant, l'écriture 24 * 60 * 60 n'est pas une mauvaise pratique du tout, et il est le plus susceptible d'être doublé par le compilateur aussi!

tant d'effort juste pour ne pas définir un const pour 60 x 60 x 24;)

Il est pas une constante, le nombre de secondes dans une journée varie en fonction du jour et le fuseau horaire. Il est donc pas quelque chose que Microsoft est susceptible d'offrir.

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

Ce fut un commentaire de @ckarras. Ajout comme une réponse à la rendre plus visible.

Il est effectivement disponible dans le framework .NET. Vous pouvez y accéder comme ceci:

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

S'il vous plaît ne pas utiliser.

le plus proche vous allez obtenir w / o vous possédez spécifier:

System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond

vous pouvez même envelopper cela comme une méthode d'extension ...

public static Extensions
{
   public static int SecondsPerDay( this System.TimeSpan ts )
   {
      return   System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
   }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top