Comment pourrais-je comparer deux dates pour voir celle qui est plus tard, en utilisant Python?
Par exemple, je veux vérifier si la date actuelle est au-delà de la dernière date de la liste que je crée, des dates de vacances, afin qu'il envoie automatiquement un e-mail, en disant à l'administrateur de mettre à jour le fichier holiday.txt.
<
et>
, comme pour toute autre comparaison.int compare_dates(void const *, void const*)
, convertissez les deux argumentsstruct Date *
et implémentez la logique de comparaison. Ce n'est peut-être pas si évident pour un nouveau venu en Python.Réponses:
Utilisez la
datetime
méthode et l'opérateur<
et ses parents.la source
past
etpresent
? Je ne peux pas comprendre votre exemple et son résultat n'a pas de sens.past
etpast_but_a_little_after
. Techniquement,present
c'est aussi dans le passé lorsque la comparaisonpast < present
est faite.Utilisation
time
Disons que vous avez les dates initiales sous forme de chaînes comme celles-ci:
date1 = "31/12/2015"
date2 = "01/01/2016"
Vous pouvez effectuer les opérations suivantes:
newdate1 = time.strptime(date1, "%d/%m/%Y")
etnewdate2 = time.strptime(date2, "%d/%m/%Y")
les convertir au format de date de python. Ensuite, la comparaison est évidente:newdate1 > newdate2
reviendraFalse
newdate1 < newdate2
reviendraTrue
la source
datetime.date(2011, 1, 1) < datetime.date(2011, 1, 2)
reviendraTrue
.datetime.date(2011, 1, 1) - datetime.date(2011, 1, 2)
reviendradatetime.timedelta(-1)
.datetime.date(2011, 1, 1) + datetime.date(2011, 1, 2)
reviendradatetime.timedelta(1)
.voir les documents .
la source
Les autres réponses utilisant
datetime
et les comparaisons fonctionnent également uniquement pour le temps, sans date.Par exemple, pour vérifier s'il est actuellement plus ou moins de 8h00, nous pouvons utiliser:
Et comparer plus tard avec:
qui reviendra
True
la source
Pour calculer les jours en deux dates de différence, vous pouvez faire comme ci-dessous:
Parce que si une seconde est plus avec la date d'échéance, nous devons facturer
la source