Como eu compararia duas datas para ver qual é mais tarde, usando Python?
Por exemplo, quero verificar se a data atual passou da última data nesta lista que estou criando, de datas de feriados, para que ele envie um email automaticamente, informando ao administrador para atualizar o arquivo holiday.txt.
<
e>
, como em qualquer outra comparação.int compare_dates(void const *, void const*)
, lança os dois argumentosstruct Date *
e implementa a lógica de comparação. Pode não ser tão óbvio para um iniciante em Python.Respostas:
Use o
datetime
método, o operador<
e seus parentes.fonte
past
epresent
? Não consigo entender o seu exemplo e o resultado não faz sentido.past
epast_but_a_little_after
. Tecnicamente,present
também está no passado quando a comparaçãopast < present
é feita.Usar
time
Digamos que você tenha as datas iniciais como strings como estas:
date1 = "31/12/2015"
date2 = "01/01/2016"
Você pode fazer o seguinte:
newdate1 = time.strptime(date1, "%d/%m/%Y")
enewdate2 = time.strptime(date2, "%d/%m/%Y")
convertê-los para o formato de data do python. Então, a comparação é óbvia:newdate1 > newdate2
retornaráFalse
newdate1 < newdate2
retornaráTrue
fonte
datetime.date(2011, 1, 1) < datetime.date(2011, 1, 2)
retornaráTrue
.datetime.date(2011, 1, 1) - datetime.date(2011, 1, 2)
retornarádatetime.timedelta(-1)
.datetime.date(2011, 1, 1) + datetime.date(2011, 1, 2)
retornarádatetime.timedelta(1)
.veja os documentos .
fonte
Outras respostas, usando
datetime
e comparações, também funcionam por tempo, sem data.Por exemplo, para verificar se agora é mais ou menos do que 8:00 da manhã, podemos usar:
E depois compare com:
que retornará
True
fonte
Para calcular dias em duas datas de diferença, pode ser feito como abaixo:
Porque se um segundo é mais com a data de vencimento, temos que cobrar
fonte