2017-06-28 21 views
1

hy現在の日付を比較しようとしていて、特定の日付になったときにアクションを実行しようとしています。それはC#の統一では機能しません。ここ コードです:C#で時刻と日付を比較する

string over = "2017/06/28 22:38:30"; 
string dateAndTimeVar = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); 

if (dateAndTimeVar == over) 
{ 
    print(dateAndTimeVar); 
} 
+2

これは、2番目に基づいて一致する必要があります。 DateTimeオブジェクトに比較を処理させるのではなく、なぜそれらを文字列に変換していますか? – Mardoxx

答えて

0

System.DateTime.Now、その最も基本的な形で、プログラムを実行しているコンピュータの時計を使用しています。あなたのdatetimesに秒を含めるので、conditionalがtrueに評価されるためには、 'over'という文字列で指定された正確な秒で評価する必要があります。投稿されたコードだけでは、プログラムを実行して環境を制御する何もせずに指定された正確な秒で条件を評価することはほとんどできません。これを簡単にデバッグするには、変数を出力するか、デバッガを使用して、実行時にコンピュータが実際に見ているものを実際に見ることができます。

0

よくある問題があったときは、DateTime.Nowを使って現在の時刻を取得しました。 DateTimeオブジェクトを比較する場合、DateTime.Ticksプロパティを使用するのは簡単です。あなたがここに見つけることができます さらに詳しい情報:

https://msdn.microsoft.com/ru-ru/library/system.datetime.ticks(v=vs.110).aspx 

を私はあなたのコードからわかるように、あなたは時間が来るとき、print(dateAndTimeVar);を実行したいです。 次のように比較するとよいでしょう:

if(DateTime.Now.Ticks >= dateTimeOver) 
{ 
    print(dateAndTimeVar); 
} 
関連する問題