.NET 是否有一个常数表示一天中的秒数(86400)?
问问题
5562 次
9 回答
20
这不是一个恒定的值
于 2010-01-25T23:25:08.880 回答
9
如果你想要可读性,你可以使用:
(new TimeSpan(1,0,0,0)).TotalSeconds
虽然只使用你自己的 const 可能会更清楚:)
于 2010-01-25T23:23:07.030 回答
5
正常一天的秒数是 86400。但 DST 发生变化的天数可能更短或更长。
但是,写成 24*60*60 一点也不坏,而且它也很可能被编译器内联!
于 2010-01-25T23:49:48.273 回答
5
double secondsPerDay = TimeSpan.FromDays(1).TotalSeconds;
这是来自@ckarras 的评论。将其添加为答案以使其更加可见。
于 2017-01-06T01:00:31.370 回答
4
在不指定您拥有的情况下最接近您将获得的:
System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
您甚至可以将其包装为扩展方法...
public static Extensions
{
public static int SecondsPerDay( this System.TimeSpan ts )
{
return System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
}
}
于 2010-01-25T23:25:27.727 回答
4
只是为了不为 60 x 60 x 24 定义 const 付出了这么多努力;)
于 2010-01-26T01:45:08.170 回答
3
它实际上在 .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;
}
}
请不要使用那个。
于 2010-01-26T01:03:41.053 回答
2
它不是一个常数,一天中的秒数因日期和时区而异。因此,这不是微软可能提供的东西。
于 2010-01-25T23:26:16.617 回答
0
如果您想要比 GaussZ 的答案更具可读性,您可以使用:
TimeSpan.FromDays(1).TotalSeconds
于 2021-04-01T04:50:39.773 回答