2011-12-31 6 views
7

Quelqu'un peut-il m'aider s'il vous plaît pour faire ce travail?Calcul du temps entre deux dates?

Je veux calculer le temps entre deux dates en VB.NET comme ceci:

startdate: 2011/12/30 
enddate: 2011/12/31 

Calculer: heure? minute? secondes

Répondre

15

Vous pouvez essayer cette

DateTime startTime = DateTime.Now; 

DateTime endTime = DateTime.Now.AddSeconds(75); 

TimeSpan span = endTime.Subtract (startTime); 
Console.WriteLine("Time Difference (seconds): " + span.Seconds); 
Console.WriteLine("Time Difference (minutes): " + span.Minutes); 
Console.WriteLine("Time Difference (hours): " + span.Hours); 
Console.WriteLine("Time Difference (days): " + span.Days); 

sortie Comme,

Time Difference (seconds): 15 
Time Difference (minutes): 1 
Time Difference (hours): 0 
Time Difference (days): 0 

Et l'équivalent VB.Net à ce qui précède:

Dim startTime As DateTime = DateTime.Now 

Dim endTime As DateTime = DateTime.Now.AddSeconds(75) 

Dim span As TimeSpan = endTime.Subtract(startTime) 
Console.WriteLine("Time Difference (seconds): " + span.Seconds) 
Console.WriteLine("Time Difference (minutes): " + span.Minutes) 
Console.WriteLine("Time Difference (hours): " + span.Hours) 
Console.WriteLine("Time Difference (days): " + span.Days) 
+0

Good One .. Merci beaucoup ... –

+4

Pour toute personne utilisant ceci, gardez à l'esprit que span.Seconds ne retournera pas la différence de temps totale en secondes, mais plutôt la différence dans les composants secondes (jusqu'à 59 max). Pour retourner la différence totale, utilisez span.TotalSeconds, span.TotalMinutes, etc. – http203

+0

Ce n'est pas du code VB.net, c'est du C#. – cybermonkey

5

Lorsque vous soustrayez 2 DateTime s, vous obtenez une struct TimeSpan qui a toutes ces propriétés pour vous.

3

Sur la base de la question, le calcul du temps entre deux dates, il est préférable d'utiliser DateDiff. Sur exemple ci-dessous, on peut aussi remplacer l'heure avec la minute, seconde, mois, etc .:

Dim timeDif As Long = DateDiff(DateInterval.Hour, startDate, endDate) 

L'utilisation TimeSpan renvoie la différence de temps exclu du cycle quotidien, voir ci-dessous le code:

Dim startDate As Date = Date.Now 
Dim endDate As Date = startDate.AddDays(3) 'add 3 days to startDate 
Dim timeSpan As TimeSpan = endDate.Subtract(startDate) 
Dim difDays As Integer = timeSpan.Days 'get 3 days 
Dim difHr As Integer = timeSpan.Hours 'get 0 hours although 3 days difference 
Dim difMin As Integer = timeSpan.Minutes 'get 0 minutes although 3 days difference