C# Comparer le Temps entre Deux Intervalles de Temps
D'essayer de comparer un Moment donné entre deux fois pour voir si c'est à l'intérieur de ces intervalles. par exemple, si le Moment donné est 00:00 j'ai besoin de savoir si elle tombe entre 21:00:00 à 7:00:00. Essayé Laps De Temps.Comparer les pas de serrure et également utilisé > ou < pour le Temps de la Partie.
par exemple
Compte Tenu Des Intervalles:
7:00:00 to 19:00:00 19:00:00 to 21:00:00 21:00:00 to 7:00:00
Temps pour comparer:
00:00:00 et 01:00:00
Toute aide sera appréciée.
Mis À Jour Question:
Ressemble à l'exigence est calme vague. L'exigence est fondamentalement pour passer le Temps (TimeSpan) et de les comparer avec les deux intervalles de Temps pour voir si ils tombent à l'intervalle.
par exemple, Permet de dire que les employés obtiennent différentes allocations s'ils travaillent sur différents intervalles de temps ci-dessous:
Plage de dates: 2012-01-01 à 2012-31
19:00:00 to 21:00:00 ($10.00) 21:00:00 to 7:00:00 ($11.00) 7:00:00 to 19:00:00 ($12.00)
Pour calculer le taux horaire d'un employé, j'ai besoin de vérifier si l'employé a travaillé
- Entre la Plage de dates :2012-01-01 à 2012-31
- Entre le Temps de la Gamme au-dessus.
Et d'appliquer le Taux de $ en conséquence.
- Avez-vous besoin d'écrire un intervalle de temps struct? Comme une structure contenant deux points dans le temps, à savoir une heure de début et une heure de fin.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez écrire vous-même une extension de la méthode comme;
Le code suivant...
...imprime le résultat suivant:
true
comme il se doit. Minuit est entre 8 H et 8 h du matin.DateTime
est un problème. De quoi vous passer l'année, le mois et le jour seront tout simplement ignorées. Il est assez facile de convertir deTimeSpan
ainsi, si c'est votre entrée.false
et montrue
. Autre que cela, ils doivent être identiques. Et oui, je suis d'accord avec l'OP devrait clarifier ses besoins.Ou, si vos besoins vont au-delà de ça, utiliser un de mes favoris bibliothèques.
ITimePeriod.HasInside
ouITimePeriod.GetRelation
pour déterminer si un temps tombe dans un moment de gamme.Donc, c'est juste pour l'exemple perposes de montrer que l'ajout de 1,3 jours donne toujours le même temps de réponse.
Ne sais pas pourquoi de temps ne travaille pas pour vous.
J'ai essayé cet exemple dans mon POC application et cela a fonctionné.
Essayer cette espère que ça va résoudre le problème.