Gérer les négatifs des intervalles de temps
Dans ma sortie de grille, je calculer le TimeSpan
et de prendre son TotalHours
. par exemple,
(Eval("WorkedHours") - Eval("BadgedHours")).TotalHours
L'objectif est de montrer la TotalHours
comme 39:44
, j'ai donc besoin de convertir la valeur de 7.5
à 07:30
. Ce n'est pas un problème... sauf si c'est négatif!
Je peux créer un TimeSpan
objet de Hours
avec
TimeSpan.FromHours( (Eval("WorkedHours") - Eval("BadgedHours")).TotalHours)
Si c'est négatif, je ne peux pas la convertir en une DateTime
d'utiliser le .ToString("HH:mm")
de la méthode et de la TimeSpan
objet ne prend pas en charge le format de chaîne de caractères.
- Veuillez considérer le reformatage les extraits de code comme code en ligne ou des sections de code, et ajouter de la plate-forme appropriée tag (je suppose .NET à partir de vos extraits).
Vous devez vous connecter pour publier un commentaire.
N'est-il pas
TimeSpan.Duration
méthode? Je pense que ce serait la poignée de ce que vous essayez de faire.Cela fonctionnera correctement si le temps est de plus de 24 heures.
Il suffit de multiplier par -1 ou utiliser la fonction valeur absolue.
TimeSpan.Duration
méthode. À partir de MSDN: "Retourne un nouvel objet TimeSpan dont la valeur est la valeur absolue de l'actuel objet TimeSpan".Il est Nier la méthode dans la classe TimeSpan.
Lien vers la documentation MSDN:
TimeSpan.Nier La Méthode()
son travail .essayez cette
mytimespam.Annuler();
La solution la plus simple serait de faire:
Salut j'ai travaillé dans un morceau de code que j'ai écrit, j'espère que ça aide
(résultats) est une variable int
(TimeSpan.FromMinutes(result)) < TimeSpan.Zero ? "-" + TimeSpan.FromMinutes(result).ToString(@"hh\:mm") : "" + TimeSpan.FromMinutes(result).ToString(@"hh\:mm");
J'ai vérifié à chaque où.Mais je n'ai pas eu une bonne réponse c'est pourquoi j'ai utilisé ce moyen pour terminer
if (diff < TimeSpan.Zero)