Necesito saber cómo puedo calcular la fecha del próximo viernes? Soy nuevo en Python :)¿Cómo calcular el próximo viernes en Python?
Gracias!
Necesito saber cómo puedo calcular la fecha del próximo viernes? Soy nuevo en Python :)¿Cómo calcular el próximo viernes en Python?
Gracias!
Para empezar, debes contar con la biblioteca datetime
:
import datetime
Luego hay una fecha de inicio; es decir, hoy.
d = datetime.date.today()
A partir de allí, tendrá que seguir adelante hasta llegar al viernes. El método date.weekday
representa lunes a domingo de 0 a 6, por lo que:
while d.weekday() != 4:
Si el día actual no es el viernes, que tendrá que añadir un día, una a la vez. Para agregar un intervalo de tiempo a un objeto date
, utiliza un objeto timedelta
.
d += datetime.timedelta(1)
poner todo junto, y en última instancia, d
contener un objeto que representa date
próximo viernes. Tenga en cuenta que si hoy es viernes, este código se producirá hoy; puede modificarlo si lo necesita para producir el próximo viernes en su lugar.
¡Gracias! Muy útil – KennyPowers
@rolikoff FYI, cuando recibe una respuesta que lo ayuda, puede aceptarla haciendo clic en la marca de verificación (vea [faq # howtoask]). – Taymon
Votado abajo porque la respuesta de @ugoren (con el cambio propuesto en los comentarios) es estrictamente mejor –
Una cierta mejora con respecto a @ taymon`s respuesta:
today = datetime.date.today()
friday = today + datetime.timedelta((4-today.weekday()) % 7)
4 es de lunes a viernes del viernes (0 basada, a contar desde el lunes).
((4-today.weekday()) % 7)
es el número de días hasta el próximo Viernes (%
siempre es no negativo).
Después de ver la respuesta de @ ubuntu, debo agregar dos cosas:
1. No estoy seguro si Friday = 4 es universalmente cierto. Algunas personas comienzan su semana los domingos.
2. El viernes, este código regresa el mismo día. Para obtener el siguiente, use (3-today.weekday())%7+1
. Solo la antigua conversión x%n
a ((x-1)%n)+1
.
El viernes siempre es 4 cuando se usa ['weekday()'] (http://docs.python.org/library/datetime.html#datetime .date.weekday) método. El método ['isoweekday()'] (http://docs.python.org/library/datetime.html#datetime.date.isoweekday) da el viernes como 5, porque trata de lunes a domingo del 1 al 7. – Taymon
Usted puede usar 'calendar.Viernes 'en lugar de' 4' si no le importa agregar 'import calendar'. – lumbric
Aquí es cómo usted puede hacerlo usando dateutil: (. El argumento days = 1
asegura que el "próximo viernes" no es lo mismo que today
en caso de today
pasa a ser un viernes)
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
¿Es esta tarea? –
No :) solo quiero saber la mejor manera de hacerlo. Sé que algo como dateutil podría ayudar a hacer eso, pero no estoy seguro si vale la pena usarlo o no – KennyPowers
¿Por qué la gente siempre pregunta si es tarea? Se vuelve repetitivo; ¿Qué diferencia haría? – HexTree