Я пробовал этот код, но он дает мне только имя текущего дня.

Как я могу получить имя на следующий день?

import datetime
d = datetime.datetime.now()

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
a = days[d.weekday()] 
0
Hello 11 Янв 2022 в 15:01

7 ответов

Вы можете использовать strftime:

(d + datetime.timedelta(1)).strftime('%A')
>>> 'Wednesday'
1
3DspatialUser 11 Янв 2022 в 15:04

Вы можете добавить количество дней к заданной дате, чтобы создать новый объект datetime для этой даты:

tomorrow = d +datetime.timedelta(days=1)
print(days[d.weekday()])
1
D Malan 11 Янв 2022 в 15:04

Первый шаг: рассчитать завтрашний день. Второй шаг: получить название завтрашнего дня

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 Янв 2022 в 15:04

Нет необходимости в жестко заданном массиве, используйте strftime()< /а>

import datetime

tomorrow = datetime.date.today() + datetime.timedelta(days=1)

print(tomorrow.strftime('%A'))
# Wednesday

Попробуйте онлайн!

1
0stone0 11 Янв 2022 в 15:06

Мы можем использовать оператор по модулю %, чтобы обойти наш поиск в списке дней:

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 Янв 2022 в 15:22

Сначала добавьте один день к дате с помощью объекта timedelta, затем получите название дня с помощью strftime('%A').

import datetime

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

Вот и все. Нет необходимости иметь дополнительный список days и использовать индекс (d.weekday() + 1), но если вы хотите сделать это, вы также должны использовать оператор %(@Anentropic упомянутый здесь), чтобы предотвратить IndexError, когда ваш день "воскресенье". В этом случае .weekday() вернет 6, а days[d.weekday() + 1] вызовет исключение.

1
SorousH Bakhtiary 11 Янв 2022 в 16:42
import datetime
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

Просто получите следующее число в массиве, потому что текущий день получает текущий:

d = datetime.datetime.now()
# Monday

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