Devo sapere come posso calcolare la data del prossimo venerdì? Sono nuovo di Python :)Come calcolare il prossimo venerdì in Python?
Grazie!
Devo sapere come posso calcolare la data del prossimo venerdì? Sono nuovo di Python :)Come calcolare il prossimo venerdì in Python?
Grazie!
Per cominciare, è necessario biblioteca datetime
:
import datetime
allora avete bisogno di una data di inizio; cioè, oggi.
d = datetime.date.today()
Partendo da lì, si vorrebbe continuare ad andare avanti fino al venerdì. Il metodo date.weekday
rappresenta Lunedi a Domenica come 0 a 6, in modo da:
while d.weekday() != 4:
Se il giorno corrente non è Venerdì, dovrete aggiungere un giorno, una alla volta. Per aggiungere un intervallo di tempo a un oggetto date
, si utilizza un oggetto timedelta
.
d += datetime.timedelta(1)
mettere tutto insieme, e d
in ultima analisi contenere un oggetto che rappresenta date
prossimo Venerdì. Nota che se oggi è venerdì, questo codice produrrà oggi; puoi modificarlo se ne hai bisogno per produrre venerdì prossimo invece.
Grazie! Molto utile – KennyPowers
@rolikoff FYI, quando ottieni una risposta che ti aiuta, puoi accettarla facendo clic sul segno di spunta (vedi [faq # howtoask]). – Taymon
Votato perché la risposta di @ ugoren (con modifica proposta nei commenti) è strettamente migliore –
Un certo miglioramento rispetto @ taymon`s risposta:
today = datetime.date.today()
friday = today + datetime.timedelta((4-today.weekday()) % 7)
4 è giorno della settimana di Venerdì (0 sulla base, a partire dal Lunedi).
((4-today.weekday()) % 7)
è il numero di giorni fino al venerdì successivo (%
è sempre non negativo).
Dopo aver visto la risposta di @ ubuntu, dovrei aggiungere due cose:
1. Non sono sicuro che venerdì = 4 sia universalmente vero. Alcune persone iniziano la settimana di domenica.
2. Il venerdì, questo codice restituisce lo stesso giorno. Per ottenere il prossimo, utilizzare (3-today.weekday())%7+1
. Solo la vecchia conversione da x%n
a ((x-1)%n)+1
.
Venerdì è sempre 4 quando si utilizza il ['feriale()'] (http://docs.python.org/library/datetime.html#datetime .date.weekday) metodo. Il metodo ['isoweekday()'] (http://docs.python.org/library/datetime.html#datetime.date.isoweekday) dà il venerdì come 5, perché tratta dal lunedì alla domenica come da 1 a 7. – Taymon
Tu puoi usare 'calendar.FRIDAY' invece di' 4' se non ti dispiace aggiungere 'import calendar'. – lumbric
Ecco come si potrebbe fare utilizzando dateutil: (. L'argomento days = 1
assicura che il "Venerdì prossimo" non è lo stesso che today
nel caso in cui today
capita di essere un Venerdì)
import datetime as DT
import dateutil.relativedelta as REL
today = DT.date.today()
print(today)
# 2012-01-10
rd = REL.relativedelta(days=1, weekday=REL.FR)
next_friday = today + rd
print(next_friday)
# 2012-01-13
Questi compiti? –
No :) voglio solo sapere il modo migliore per farlo. So che c'è qualcosa come dateutil potrebbe aiutare a farlo, ma non è sicuro che valga la pena di usarlo o no – KennyPowers
Perché le persone chiedono sempre se si tratta di compiti a casa? Diventa ripetitivo; che differenza avrebbe fatto? – HexTree