Comment obtenir le décalage horaire entre deux DateTime
objets en utilisant C #?
159
L'exemple suivant montre comment procéder:
DateTime a = new DateTime(2010, 05, 12, 13, 15, 00);
DateTime b = new DateTime(2010, 05, 12, 13, 45, 00);
Console.WriteLine(b.Subtract(a).TotalMinutes);
Lorsqu'il est exécuté, cela imprime "30" car il y a une différence de 30 minutes entre la date et l'heure.
Le résultat de DateTime.Subtract(DateTime x)
est un objet TimeSpan qui donne d'autres propriétés utiles.
Console.WriteLine((a - b).ToString(@"hh\:mm\:ss"))
. Voir: MSDN Custom TimeSpan FormatTotalMinutes
! (notMinutes
)Vous voulez la
TimeSpan
structure:Il existe différentes méthodes pour récupérer les jours, heures, minutes, secondes et millisecondes de cette structure.
Si vous êtes simplement intéressé par la différence, alors:
vous donnera la différence positive entre les heures quelle que soit la commande.
Si vous venez d'obtenir le composant horaire mais que les heures peuvent être fractionnées avant minuit, vous devez ajouter 24 heures à l'intervalle pour obtenir la différence réelle:
la source
Ce dont vous avez besoin est d'utiliser la méthode Subtract des classes DateTime , qui renvoie un TimeSpan .
la source
La façon dont je le fais habituellement est de soustraire les deux DateTime et cela me donne un TimeSpan qui me dira le diff.
Voici un exemple:
la source
S'ils sont tous les deux des valeurs date-heure UTC, vous pouvez le faire
TimeSpan diff = dateTime1 - dateTime2;
Sinon, vos chances d'obtenir la bonne réponse dans tous les cas possibles sont nulles.
la source
la source
Vous devez utiliser un TimeSpan . Voici un exemple de code:
la source
TimeSpan sincelast = DateTime.Now - LastUpdate;
la source
Vous pouvez utiliser de la manière suivante pour obtenir une différence entre deux objets Datetime. Supposons qu'il y ait des objets DateTime dt1 et dt2 puis le code.
la source