.NET ثابت لعدد الثواني في اليوم؟
سؤال
هل .net لديه ثابت لعدد الثواني في اليوم (86400)؟
المحلول
إذا كنت تريد قابلية القراءة يمكنك استخدامها:
(new TimeSpan(1,0,0,0)).TotalSeconds
على الرغم من أن استخدام const الخاص بك قد يكون أكثر وضوحًا :)
نصائح أخرى
إنها ليست قيمة ثابتة
عدد الثواني في أ عادي اليوم هو 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
}
}