.NET 常数表示一天中的秒数?

发布于 2024-08-19 07:36:30 字数 35 浏览 6 评论 0原文

.NET 是否有一个表示一天秒数的常量 (86400)?

Does .NET have a constant for the number of seconds in a day (86400)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

雾里花 2024-08-26 07:36:30

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

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

尽管仅使用您自己的 const 可能会更清晰:)

If you want readability you could use:

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

though just using your own const might be clearer :)

绅刃 2024-08-26 07:36:30

这么多努力只是为了不定义 60 x 60 x 24 的 const ;)

so much effort just for not defining a const for 60 x 60 x 24 ;)

云巢 2024-08-26 07:36:30

正常一天的秒数是 86400。但是 DST 发生变化的日子可能会更短或更长。

然而,编写 24*60*60 根本不是一个坏习惯,而且它也最有可能被编译器内联!

Number of seconds in a regular day is 86400. But the days when DST changes happen may be shorter or longer.

However, writing 24*60*60 is not a bad practice at all, and it is most likely to be in-lined by the compiler, too!

情感失落者 2024-08-26 07:36:30
double secondsPerDay = TimeSpan.FromDays(1).TotalSeconds;

这是@ckarras 的评论。将其添加为答案以使其更加明显。

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

This was a comment from @ckarras. Adding it as an answer to make it more visible.

梦在夏天 2024-08-26 07:36:30

最接近您想要的但不指定您自己的:

System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond

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

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

closest your going to get w/o specifying you own:

System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond

you could even wrap this as an extension method...

public static Extensions
{
   public static int SecondsPerDay( this System.TimeSpan ts )
   {
      return   System.TimeSpan.TicksPerDay / System.TimeSpan.TicksPerSecond
   }
}
握住我的手 2024-08-26 07:36:30

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

请不要使用它。

It is actually available in the .NET framework. You can get to it like this:

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;
  }
}

Please don't use that.

り繁华旳梦境 2024-08-26 07:36:30

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

It isn't a constant, the number of seconds in a day varies depending on the day and the timezone. Thus it isn't something that Microsoft is likely to offer.

彼岸花ソ最美的依靠 2024-08-26 07:36:30

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

TimeSpan.FromDays(1).TotalSeconds

If you want a smidgen more readability than GaussZ's answer you could use:

TimeSpan.FromDays(1).TotalSeconds
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文