.NET常量为一天中的秒数?

时间:2010-01-25 23:14:46

标签: .net constants seconds

.NET是否具有一天中的秒数(86400)的常量?

9 个答案:

答案 0 :(得分:21)

这不是一个恒定值

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

答案 1 :(得分:7)

如果您想要可读性,可以使用:

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

虽然只使用你自己的const可能更清楚:)

答案 2 :(得分:5)

常规日的秒数为86400.但DST更改发生的日期可能更短或更长。

然而,编写24 * 60 * 60并不是一个糟糕的做法,它也很可能被编译器内置!

答案 3 :(得分:3)

它不是常数,一天中的秒数根据日期和时区而变化。因此,它不是微软可能提供的东西。

答案 4 :(得分:3)

因为没有为60 x 60 x 24定义const而付出了太多努力;)

答案 5 :(得分:3)

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

这是来自@ckarras的评论。添加它作为答案,使其更加明显。

答案 6 :(得分:2)

最接近你没有指定你拥有的:

System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond

您甚至可以将其作为扩展方法包装......

public static Extensions
{
   public static int SecondsPerDay( this System.TimeSpan ts )
   {
      return   System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
   }
}

答案 7 :(得分:2)

它实际上可以在.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;
  }
}

请不要使用它。

答案 8 :(得分:0)

如果您想要比 GaussZ 的答案更具可读性,您可以使用:

TimeSpan.FromDays(1).TotalSeconds