我想知道是否通過了一天中的特定時間。我真的不喜歡我的做法:C#最好的方法來比較一天中的兩個時間
private static readonly TimeSpan _whenTimeIsOver = new TimeSpan(16,25,00);
internal static bool IsTimeOver()
{
return DateTime.Now.TimeOfDay.Subtract(_whenTimeIsOver).Ticks > 0;
}
你好嗎?
我想知道是否通過了一天中的特定時間。我真的不喜歡我的做法:C#最好的方法來比較一天中的兩個時間
private static readonly TimeSpan _whenTimeIsOver = new TimeSpan(16,25,00);
internal static bool IsTimeOver()
{
return DateTime.Now.TimeOfDay.Subtract(_whenTimeIsOver).Ticks > 0;
}
你好嗎?
關於如何:
internal static bool IsTimeOver()
{
return DateTime.Now.TimeOfDay > _whenTimeIsOver;
}
運算符重載是日期和時間的工作非常有幫助:)你也可能要考慮使其成爲一個屬性,而不是一個方法。
這是一個輕微的遺憾,有沒有
DateTime.CurrentTime
或
TimeSpan.CurrentTime
避免DateTime.Now.TimeOfDay
(就像有DateTime.Today
),但很可惜,沒有...
我int
MiscUtil有一套擴展方法,這將使_whenTimeIsOver
neater的初始化 - 你會使用方法:
private static readonly TimeSpan _whenTimeIsOver = 16.Hours() + 25.Minutes();
這不是每個人的口味,但我喜歡它......
if (DateTime.Now.TimeOfDay > _whenTimeIsOver)
....
+1是第一個。 – Vadim 2009-09-11 14:17:11
+1以某種方式比Jon更快 – 2009-09-11 14:27:40
我速度更快,但我的初步答案包含一個小錯誤:) – 2009-09-11 14:28:35
好吧,我們不能比較DateTime和TimeSpan對象,我錯了。我喜歡初始化。 – Toto 2009-09-11 14:25:43
@Duaner:你沒有比較'DateTime'和'TimeSpan' - 你在比較兩個'TimeSpans'。 'TimeOfDay'屬性返回'TimeSpan'。 – 2009-09-11 14:28:05