web-dev-qa-db-fra.com

Vérifier si l'instance datetime se situe entre deux autres objets datetime

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.

45
Deeptechtons

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
}  
74
Jason Slocomb

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
43
VikciaR

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 (,));

0
Wayne Hamberg

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
}
0
KaeL