2010-12-14 9 views
4

Ich habe ein Programm, das eine Protokolldatei verarbeitet, die Datumszeit abruft und die Datumszeit in das DateTime-Format des Systems umwandelt.C# Wie erstelle ich Datum und Zeit?

Allerdings scheint das Programm den verschiedenen Datumsbereich, der ausgewählt ist, nicht zu erkennen. Das Programm sollte die Datensätze zwischen dem Datum und der Zeit abrufen, die vom Benutzer ausgewählt wurden.

Das Problem würde wahrscheinlich auf die Reihenfolge der Codes zurückzuführen sein?

Darf jemand bitte auf die Codes hinweisen? Vielen Dank!

Die Codes:

  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

== true redundant ist, auch sind Sie sicher, 'Linien' hat mehr als 12 Linien? – GreyCloud

+0

Überprüfen Sie das (bool) Ergebnis des TryParse (sollte "true" sein, wenn der Text korrekt dekodiert wurde) und prüfen Sie den "out" -Wert, ist das das Datum und/oder die Zeit, die Sie erwartet haben? –

Antwort

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); 

Span normalerweise nicht‘ein Datum, weil seine eine Zeitspanne haben, so wie viele Tage, Stunden und Minuten. Kein Datum. TimeSpan ist eine Zeitdefinition zwischen den Daten. More info on the MSDN page

Fix es DateTime.TryParse

(Und überprüfen, was die Werte von T1/T2/T3 nach Parsing sind)

+0

Das Programm verwendet DateTime.TryParseExact und die Ergebnisse wären usw. "12/09/2010 05:12:42". – JavaNoob

+0

Der Parameter von TimeSpan.TryParse sollte das Format '[ws] [-] {d | d.hh: mm [: ss [.ff]] | hh: mm [: ss [.ff]]} [ws] 'wie "99.23: 59: 59" für 99 Tage, 23 Stunden, 59 Minuten und 59 Sekunden. – RvdK

+0

Sorry hat es nicht richtig gelesen gerade jetzt die Ergebnisse für t1: "12/2/2010 4:04:17 PM" t2: "05.12.2010 5:12:42" und timeDate: "12/09/2010 05:12:42 "nachdem die TimeSpan zu DateTime geändert wurde. – JavaNoob