Дата и время Python

#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))