J'aimerais connaître un algorithme simple pour vérifier si l'instance donnée de datetime
se situe entre deux autres instances dans C#
.
Remarque:
J'ai écrémé si cela Comment puis-je vérifier si un objet datetime donné est "entre" deux dates-heures? et c'était pour python et beaucoup plus pour php. La plupart des autres questions concernaient la différence entre les deux.
Détails:
Je suis plus précis sur l'heure, la date n'a pas d'importance pour moi. Par exemple, j’ai eu une entrée DataBase
pour un membre du personnel qui travaille entre 10:00
Am - 9:00
Pm et moi, en tant que principal [par exemple], nous aimerions savoir quel membre du personnel est engagé en classe au moment donné comme 2:00 Pm
. Maintenant, cela me retournerait les détails du personnel qui sont engagés à ce moment.
DateTime.Ticks tiendra compte de l'heure. Utilisez .Ticks sur DateTime pour convertir vos dates en longs. Ensuite, utilisez un simple if pour voir si votre date cible se situe entre.
// Assuming you know d2 > d1
if (targetDt.Ticks > d1.Ticks && targetDt.Ticks < d2.Ticks)
{
// targetDt is in between d1 and d2
}
Faites une simple comparaison> et <.
if (dateA>dateB && dateA<dateC)
//do something
Si vous ne tenez qu'à l'heure:
if (dateA.TimeOfDay>dateB.TimeOfDay && dateA.TimeOfDay<dateC.TimeOfDay)
//do something
Ecrivez-vous une fonction d'assistance:
public static bool IsBewteenTwoDates(this DateTime dt, DateTime start, DateTime end)
{
return dt >= start || dt <= end;
}
Puis appelez: .IsBewteenTwoDates (DateTime.Today , New DateTime (,));
Vous pouvez utiliser:
if ((DateTime.Compare(dateToCompare, dateIn) == 1) && (DateTime.Compare(dateToCompare, dateOut) == 1)
{
//do code here
}
ou
if ((dateToCompare.CompareTo(dateIn) == 1) && (dateToCompare.CompareTo(dateOut) == 1))
{
//do code here
}