#python-3.x
#python-3.x
Вопрос:
Я пытаюсь создать функцию, которая будет возвращать значение переменной в зависимости от даты и времени. Я пытаюсь создавать небольшое соревнование каждый месяц, и соревнование начинается с 15 числа одного месяца и заканчивается 15 числа следующего месяца. Если конкурс начинается с 15 января и заканчивается 15 февраля, то функция должна вернуть дату и время окончания, которые равны (15 февраля 2020 года 24:00:00) и название конкурса, которое является «Январь 2020». Как я могу это сделать, есть какие-либо предложения?
Например:
def CompetitionDetail():
#doing something here
return competition_end_date, competition_name
Комментарии:
1. Что вы пытались сделать до сих пор? Можете ли вы поделиться написанным вами кодом?
2. Вы пытались импортировать модуль ‘import datetime` и использовать
datetime.datetime.now()
для записи текущей даты и времени, а затем использоватьstrftime("%m")
для поиска месяца? Если вы хотите узнать больше, смотрите примеры и материалы здесь w3schools.com/python/python_datetime.asp
Ответ №1:
В ответ на ваш вопрос я придумал следующее ниже. Возвращаемые данные представляют собой начальную и конечную дату / время соревнования, которое начинается 15 числа текущего месяца и заканчивается 15 числа следующего месяца. Функция принимает дату, но использует сегодняшнюю дату, если дата не указана.
from datetime import datetime, date
def competition(date=date.today()):
fifteenth_this_month = datetime(date.year, date.month, 15, 23, 59, 59)
fifteenth_next_month = datetime(date.year, date.month 1, 15, 23, 59, 59)
competition_name = f'My awesome competition for the month of '
f'{fifteenth_this_month:%B %Y}.'
competition_ending = f'This awesome competition ends on '
f'{fifteenth_next_month:%b %d, %Y} at 24:00:00.'
print(competition_name, competition_ending, '', sep='n')
return fifteenth_this_month, fifteenth_next_month
ВЫВОД
My awesome competition for the month of August 2020.
This awesome competition ends on Sep 15, 2020 at 24:00:00.
(datetime.datetime(2020, 8, 15, 23, 59, 59), datetime.datetime(2020, 9, 15, 23, 59, 59))