2013-02-01 42 views
2

我想對計時器經過事件 下面當天的確切時間是什麼,我試圖做比較DateTime.Now到確切的時間

string now = DateTime.Now.ToString("HHmm"); 

     if (now == "1630") 
     { 
      int a = 10; 
     } 

即使時間是1630 if語句假,我在做什麼錯在這裏。

+0

如果您聲明一個局部變量,並將其設置爲像這樣的價值,如果它沒有任何意義,我不會感到驚訝。 –

+5

如果它是1630,那麼它將會進入'if'語句。正如Alvin所說,你在'if'語句的主體中沒有做任何有用的事情。我也*不會*通過將它們轉換爲字符串來比較'DateTime'值... –

+0

爲什麼將DateTime轉換爲字符串不好的做法? –

回答

10

不知道爲什麼你當前時間轉換爲string

DateTime currentTime = DateTime.Now; 
if (currentTime.Hour == 16 && currentTime.Minute == 30) 
{ 
    int a = 10; 
} 
+1

錯,他想用'16:30'來比較;) –

+2

@TimSchmelter沒那麼重要。我們需要給OP留下一些空間來思考。 –

+0

@Tim Schmelter,它實際上是我當地的時間:) –

1

避免轉換時間字符串,做somrthing這樣

if(DateTime.Now.TimeOfDay == System.TimeSpan.Parse("00:09:00")) 
{ 
int a = 10; 
} 
+0

我會擔心秒部分。 –

+0

-1當絕對不需要時使用'TimeSpan.Parse' –

1
TimeSpan dbaseTime = TimeSpan.Parse("16:30:00"); 
if (DateTime.Now.TimeOfDay == dbaseTime) 
    a=10; 
+0

-1在絕對不需要時使用'TimeSpan.Parse' –

+2

確實。新的TimeSpan(16,30,00)是正確的方法。 (除了速度較慢外,TimeSpan.Parse()也會遇到本地化問題,並且需要一個IFormatProvider參數才能使其安全。) –