.NET是否具有一天中的秒数(86400)的常量?
答案 0 :(得分:21)
答案 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