2010-12-14 23 views
4

私はログテキストファイルを処理し、日付時刻を取得し、日付時刻をシステムのDateTime形式に変換するプログラムを持っています。C#日付と時間の範囲を作成するには?

しかし、プログラムは、選択されているさまざまな日付時間範囲を認識していないようです。プログラムは、ユーザーが選択した日付と時刻の間にレコードを取得する必要があります。

この問題はおそらくコードのシーケンシングによるものでしょうか?

誰かがコードに関するアドバイスをしてもらえますか?ありがとう!

コード:

  String timeDate2 = result1.ToString("MM/dd/yyyy HH:mm:ss"); 

      Console.WriteLine("The last written time to the registry was : " + timeDate2); 

      TimeSpan.TryParse("12/02/2010 16:04:17", out t1); 
      TimeSpan.TryParse("12/09/2010 05:12:42", out t2); 
      TimeSpan.TryParse(timeDate2, out t3); 

      if ((t3 >= t1 && t3 <= t2) == true) // Is t3 between t1 and t2? 
      { 
       foreach (String k in lines.Skip(12)) 
       { 
        Console.WriteLine(k); 
       } 
      x = 1; 
      } 

      else 
      { 
       x = 2; 
      } 

      Console.WriteLine("============================================================"); 

     } 

     if (x == 2) 
     { 
      Console.WriteLine("There is no selected days within the log files!"); 
     } 
+0

==真が冗長ですライン? – GreyCloud

+0

TryParseの結果(テキストが正しくデコードされた場合は 'true 'にする必要があります)を確認し、期待通りの日付または時間ですか? –

答えて

1
TimeSpan.TryParse("12/02/2010 16:04:17", out t1); 
TimeSpan.TryParse("12/09/2010 05:12:42", out t2); 
TimeSpan.TryParse(timeDate2, out t3); 

のTimeSpanは、通常は」いけない、その時間スパンので、日付を持っているので、どのように多くの日数、時間と分。日付ではありません。 TimeSpanは日付間の時間の定義です。 More info on the MSDN page

修正それDateTime.TryParse

に(そして、T1/T2/T3の値が構文解析の後にあるかどうか確認する)もよろしい '行' は12以上を持って、

+0

プログラムはDateTime.TryParseExactを使用しており、結果は "12/09/2010 05:12:42"となります。 – JavaNoob

+0

TimeSpan.TryParseのパラメータは、 '[ws] [ - ] {d | d.hh:mm [:ss [.ff]] | 99日、23時間、59分、59秒の間、「99.23:59:59」などのhh:mm [:ss [.ff]]} [ws] – RvdK

+0

申し訳ありませんが、今すぐt1の結果: "2010年12月2日4:04:17 PM" t2: "2010年12月5日5:12:42 AM"とtimeDate: "12/09/2010 05:12:42 "TimeSpanがDateTimeに変更された後。 – JavaNoob

関連する問題