确实.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
   }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top