2010-05-07 9 views
1

Comment puis-je trouver une différence entre deux intervalles de temps. Comme 13: 45: 26.836 - 14: 24: 18.473 qui est au format "Heure: Min: Sec: Millisecs". Maintenant, j'ai besoin de trouver le décalage horaire entre ces deux temps.Problème de différence entre deux intervalles de temps

Comment puis-je faire cela en C#.?

Merci d'avance.

+0

Quelle langue, cadre? –

+0

Langue: C# dans VS2005 – SyncMaster

Répondre

4

Fondamentalement, ce que vous devez faire est de mettre ces valeurs de temps en DateTime structures. Une fois que vous avez vos deux DateTime les variables, il suffit de les soustraire les uns des autres - le résultat est une variable de type TimeSpan:

DateTime dt1 = new DateTime(2010, 5, 7, 13, 45, 26, 836); 
DateTime dt2 = new DateTime(2010, 5, 7, 14, 24, 18, 473); 

TimeSpan result = dt2 - dt1; 
string result2 = result.ToString(); 

TimeSpan a une tonne de propriétés qui obtiennent des ensembles - la différence de toutes sortes d'unités, par exemple millisecondes, secondes, minutes etc. Vous pouvez également faire un .ToString() pour obtenir une représentation sous forme de chaîne du résultat. En result2, vous obtiendrez quelque chose comme ceci:

00:38:51.6370000 

Est-ce que vous cherchez?

0

Trouver le nombre de secondes; soustraire les deux nombres et vous pouvez comprendre la différence de temps. Selon le langage de programmation que vous utilisez, je suis sûr que leur bibliothèque doit être capable de le gérer.

1

Je poste un exemple;

vous pouvez vérifier et adapter votre programme,

/* Read the initial time. */ 
    DateTime startTime = DateTime.Now; 
    Console.WriteLine(startTime); 

    /* Do something that takes up some time. For example sleep for 1.7 seconds. */ 
    Thread.Sleep(1700); 

    /* Read the end time. */ 
    DateTime stopTime = DateTime.Now; 
    Console.WriteLine(stopTime); 

    /* Compute the duration between the initial and the end time. 
    * Print out the number of elapsed hours, minutes, seconds and milliseconds. */ 
    TimeSpan duration = stopTime - startTime; 
    Console.WriteLine("hours:" + duration.Hours); 
    Console.WriteLine("minutes:" + duration.Minutes); 
    Console.WriteLine("seconds:" + duration.Seconds); 
    Console.WriteLine("milliseconds:" + duration.Milliseconds); 
0
//Start off with a string 
string time1s = "13:45:26.836"; 
string time2s = "14:24:18.473"; 

TimeSpan interval = DateTime.Parse(time2s) - DateTime.Parse(time1s); 

Cela produira un résultat de:

Days 0 int   Hours 0 int 
    Milliseconds 637 int 
    Minutes 38 int   Seconds 51 int 
    Ticks 23316370000 long 
    TotalDays 0.02698653935185185 double 
    TotalHours 0.64767694444444446 double 
    TotalMilliseconds 2331637.0 double 
    TotalMinutes 38.860616666666665 double 
    TotalSeconds 2331.6369999999997 double 
Questions connexes