سؤال

هل .net لديه ثابت لعدد الثواني في اليوم (86400)؟

هل كانت مفيدة؟

المحلول

إذا كنت تريد قابلية القراءة يمكنك استخدامها:

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

على الرغم من أن استخدام const الخاص بك قد يكون أكثر وضوحًا :)

نصائح أخرى

إنها ليست قيمة ثابتة

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

عدد الثواني في أ عادي اليوم هو 86400. لكن الأيام التي تحدث فيها تغييرات DST قد تكون أقصر أو أطول.

ومع ذلك ، فإن كتابة 24*60*60 ليست ممارسة سيئة على الإطلاق ، ومن المرجح أن تكون في تصطف على مستوى المترجم أيضًا!

الكثير من الجهد فقط لعدم تحديد const لـ 60 × 60 × 24 ؛)

إنه ليس ثابتًا ، ويختلف عدد الثواني في اليوم اعتمادًا على اليوم والتنظيم الزمني. وبالتالي ، ليس من المحتمل أن تقدم Microsoft.

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

من فضلك لا تستخدم ذلك.

الأقرب إلى أن تحصل على ث/س تحديد:

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