.NET constante para número de segundos em um dia?
Pergunta
O .NET tem uma constante para o número de segundos em um dia (86400)?
Solução
Se você quiser legibilidade, você pode usar:
(new TimeSpan(1,0,0,0)).TotalSeconds
Embora apenas usar sua própria const possa ser mais clara :)
Outras dicas
Não é um valor constante
Número de segundos em um regular O dia é 86400. Mas os dias em que as alterações do DST acontecem podem ser mais curtas ou mais.
No entanto, escrever 24*60*60 não é uma prática ruim, e é mais provável que esteja envolvido pelo compilador também!
tanto esforço apenas por não definir uma const para 60 x 60 x 24;)
Não é uma constante, o número de segundos em um dia varia dependendo do dia e do fuso horário. Portanto, não é algo que a Microsoft provavelmente ofereça.
double secondsPerDay = TimeSpan.FromDays(1).TotalSeconds;
Este foi um comentário de @ckarras. Adicionando -o como uma resposta para torná -lo mais visível.
Na verdade, está disponível na estrutura .NET. Você pode chegar assim:
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;
}
}
Por favor, não use isso.
Mais próximo que você vai ser especificando que possui:
System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
Você pode até envolver isso como um método de extensão ...
public static Extensions
{
public static int SecondsPerDay( this System.TimeSpan ts )
{
return System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
}
}