2010-12-14 5 views
4

J'ai un programme qui traite un fichier texte de journal, récupère l'heure de la date, convertit l'heure de la date au format DateTime du système. Cependant, le programme ne semble pas reconnaître les différentes plages de dates sélectionnées. Le programme doit récupérer les enregistrements entre la date et l'heure sélectionnées par l'utilisateur.C# Comment créer une plage de dates et d'heures?

Le problème serait probablement dû au séquençage des codes?

Quelqu'un peut-il vous conseiller sur les codes? Merci!

Les 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 est redondant, êtes-vous également que 'lignes' a plus de 12 lignes? – GreyCloud

+0

Vérifiez le résultat (booléen) du TryParse (devrait être 'true' si le texte a été correctement décodé) et vérifiez la valeur" out ", est-ce la date et/ou l'heure que vous attendiez? –

Répondre

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 DonT normalement » ont une date parce que son intervalle de temps, donc combien de jours, heures et minutes. Pas une date. TimeSpan est une définition de temps entre les dates. More info on the MSDN page

Fix à DateTime.TryParse

(Et vérifier ce que les valeurs de t1/t2/t3 sont après l'analyse syntaxique)

+0

Le programme utilise DateTime.TryParseExact et les résultats seraient etc. "12/09/2010 05:12:42". – JavaNoob

+0

Le paramètre de TimeSpan.TryParse doit être au format '[ws] [-] {d | dhh: mm [: ss [.ff]] | hh: mm [: ss [.ff]]} [ws] 'tel que "99.23: 59: 59" pendant 99 jours, 23 heures, 59 minutes et 59 secondes. – RvdK

+0

Désolé n'a pas lu correctement maintenant les résultats pour t1: "12/2/2010 4:04:17 PM" t2: "12/5/2010 5:12:42 AM" et timeDate: "12/09/2010 05:12:42 "après que TimeSpan a été changé en DateTime. – JavaNoob

Questions connexes