10
votes

Comment vérifier si un objet DateTime donné est "entre" deux denttimes?

my_event.start_time < current_time < my_event.end_time

0 commentaires

5 Réponses :


8
votes

Votre réponse est la voie à suivre aussi longtemps que Démarrer_Time et End_Time n'ont pas de classe TzInfo associée. Vous ne pouvez pas comparer directement une date d'heure naïve avec une date de l'heure TimeZoned.


0 commentaires

7
votes

Vous pouvez utiliser un simple si la comparaison de trois dates, comme celle-ci xxx


0 commentaires

2
votes

Je connais vieux, mais comme cela est si élevé sur les résultats de Google, les réponses ici ne prennent pas en compte deux cas:

  1. Si votre temps est égal à votre gamme, c'est-à-dire que votre gamme est comprise entre 6 et 8 et il est 6.
  2. Si votre gamme de temps est de 18h00 à 6h00, plage valide; Cependant 19h00 ne correspondrait pas.

    J'ai écrit une fonction pour prendre soin de la comparaison de temps, j'espère que cela aide toute personne à voir cette ancienne question. xxx


0 commentaires

0
votes

Les DateTimes obtiennent des tests de test à tous naïfs (pas de fuseau horaire) ou au courant (TimeZone). Une exception devrait se produire si vous essayez de comparer le conscient et naïf. Si tous les DateTimes sont informés, les trimestres ne doivent pas correspondre à ce qui semble être pris en compte lors de la comparaison.

E.g. xxx


0 commentaires

0
votes

Ceci est mon script de vérifier le temps entre deux parcs horaires différents. Un pour le matin et un pour la soirée. Ceci est le script étendu à l'aide du script @ Clifford

def Strategy_Entry_Time_Check():
    current_time = datetime.datetime.now()
    #current_time = current_time.replace(hour=13, minute=29, second=00, microsecond=00) #For testing, edit the time
    morning_start = current_time.replace(hour=9, minute=30, second=00, microsecond=00)
    morning_end = current_time.replace(hour=11, minute=00, second=00, microsecond=00)
    evening_start = current_time.replace(hour=13, minute=00, second=00, microsecond=00)
    evening_end = current_time.replace(hour=15, minute=00, second=00, microsecond=00)
    
    if morning_start <= current_time <= morning_end:
        print("Morning Entry")
        return True
    elif evening_start <= current_time <= evening_end:
        print("Evening Entry")
        return True
    print("No Entry")
    return False


0 commentaires