题
确实.NET具有秒在一天(86400)的数量恒定的?
解决方案
如果你想可读性,你可以使用:
(new TimeSpan(1,0,0,0)).TotalSeconds
虽然只是用自己的常量可能会更清楚:)
其他提示
的秒数量定期天是86400。但是,当DST变化发生天可以更短或更长的时间。
不过,写入24 * 60 * 60是不是所有坏的做法,这是最有可能是在内衬由编译器呢!
只是不限定用于60×60×24一个const这么多的努力;)
它不是恒定的,秒在一天的数目取决于日和时区而改变。因此,它不是东西,微软可能提供。
double secondsPerDay = TimeSpan.FromDays(1).TotalSeconds;
此是从@ckarras评论。将其作为一个答案,使之更加明显。
有在.NET框架实际可用。你可以得到它这样的:
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;
}
}
请不要使用。
最接近你会得到W / O指定你自己的:
System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
你甚至可以包此作为一个扩展方法...
public static Extensions
{
public static int SecondsPerDay( this System.TimeSpan ts )
{
return System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
}
}
不隶属于 StackOverflow