Probé este código pero solo me da el nombre del día actual.

¿Cómo puedo obtener el nombre del día siguiente?

import datetime
d = datetime.datetime.now()

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
a = days[d.weekday()] 
1
Hello 11 ene. 2022 a las 15:01

7 respuestas

Puedes usar strftime:

(d + datetime.timedelta(1)).strftime('%A')
>>> 'Wednesday'
1
3DspatialUser 11 ene. 2022 a las 15:04

Puede agregar una cantidad de días a una fecha determinada para producir un nuevo objeto datetime para esa fecha:

tomorrow = d +datetime.timedelta(days=1)
print(days[d.weekday()])
1
D Malan 11 ene. 2022 a las 15:04

El primer paso: calcular el día de mañana. Segundo paso: obtener el nombre del día de mañana

import datetime
d = datetime.datetime.now()
tomorrow = d + datetime.timedelta(days=1)

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
a = days[tomorrow.weekday()]
1
Eugenij 11 ene. 2022 a las 15:04

Podemos usar el operador de módulo % para envolver nuestra búsqueda en la lista de días:

import datetime
d = datetime.datetime.now()

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

today_name = days[d.weekday()]

tomorrow_name = days[(d.weekday() + 1) % 7]

https://docs.python.org/3.3/reference/expressions.html#binary-arithmetic-operations

0
Anentropic 11 ene. 2022 a las 15:22

Primero agregue un día a su fecha con el objeto timedelta, luego obtenga el nombre del día con strftime('%A').

import datetime

next_day = datetime.datetime.now() + datetime.timedelta(days=1)
print(next_day.strftime('%A'))

Eso es. No es necesario tener una lista days adicional y usar el índice (d.weekday() + 1), pero si desea hacerlo, también debe usar el operador % (@Anentropic mencionó aquí) para evitar IndexError cuando su día sea "domingo". En ese caso, .weekday() devolverá 6 y days[d.weekday() + 1] generará una excepción.

1
SorousH Bakhtiary 11 ene. 2022 a las 16:42
import datetime
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

Simplemente obtenga el siguiente número en la matriz porque el día actual obtiene el actual:

d = datetime.datetime.now()
# Monday

a = days[d.weekday()+1]
# Tuesday
-1
Franz Kurt 11 ene. 2022 a las 15:18