質問

ん.NETは(86400)日の秒数の定数を持っていますか?

役に立ちましたか?

解決

あなたは可読性をしたい場合は、使用することができます:

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

ちょうどあなた自身のconstを使用することが明確になるかもしれませんが。)

他のヒント

これが一定値ではありません。

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

の定期的なの日86400ですが、DSTの変更が起こる日が短くても長くてもよい。

の秒

しかし、* 60 * 60 24を書くことは、すべての悪い習慣ではない、それはあまりにも、でライニングコンパイラである可能性が最も高いです!

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

それを使用しないでください。

は、最も近いあなたの/ oはあなた自身を指定してwを取得しようとしてます:

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