Перейти к содержимому

Как определить день недели по дате python

  • автор:

Функции и атрибуты модуля calendar

В этом разделе представлены полезные функции и атрибуты модуля calendar .

Содержание:

  • Установить начало недели calendar.setfirstweekday() ,
  • Получить день недели, установленный как начало недели calendar.firstweekday() ,
  • True , если год является високосным calendar.isleap() ,
  • Количество високосных лет в диапазоне calendar.leapdays() ,
  • Узнать день недели по дате calendar.weekday() ,
  • Узнать количество дней в месяце и первый рабочий день месяца calendar.monthrange() ,
  • Матрица, представляющая календарь на указанный месяц calendar.monthcalendar() ,
  • Печать календаря на месяц calendar.prmonth() ,
  • Календарь на месяц для сохранения в файл calendar.month() ,
  • Печать календаря на год calendar.prcal() ,
  • Календарь на год для сохранения в файл calendar.calendar() ,
  • Получить секунды из структуры времени calendar.timegm() ,
  • Итератор названий дней недели calendar.day_name() ,
  • Итератор сокращенных названий дней недели calendar.day_abbr() ,
  • Псевдонимы дней недели c calendar.MONDAY по calendar.SUNDAY (новое в Python 3.12),
  • Перечисление — дни недели как целочисленные константы calendar.Day (новое в Python 3.12),
  • Итератор названий месяцев года calendar.month_name() ,
  • Итератор сокращенных названий месяцев года calendar.month_abbr() ,
  • Псевдонимы месяцев года c calendar.JANUARY по calendar.DECEMBER (новое в Python 3.12),
  • Перечисление — дни недели как целочисленные константы calendar.Month (новое в Python 3.12).
calendar.setfirstweekday(weekday) :

Функция calendar.setfirstweekday() устанавливает день недели 0 — понедельник, 6 — воскресенье, с которого начинается неделя.

Значения calendar.MONDAY , calendar.TUESDAY , calendar.WEDNESDAY , calendar.THURSDAY , calendar.FRIDAY , calendar.SATURDAY и calendar.SUNDAY приведены для удобства.

Например, чтобы установить первый будний день воскресенье:

>>> import calendar >>> calendar.setfirstweekday(6) # эквивалентно >>> calendar.setfirstweekday(calendar.SUNDAY) 
calendar.firstweekday() :

Функция calendar.firstweekday() возвращает целое число, означающее день недели, установленное в качестве начала недели.

>>> import calendar >>> calendar.firstweekday() # 0 
calendar.isleap(year) :

Функция calendar.isleap() возвращает True , если год year является високосным, в противном случае False .

>>> import calendar >>> calendar.isleap(2024) # True >>> calendar.isleap(2022) # False 
calendar.leapdays(y1, y2) :

Функция calendar.leapdays() возвращает количество високосных лет в диапазоне от y1 до y2 (исключая), где y1 и y2 — годы.

>>> import calendar >>> calendar.leapdays(2020, 2050) # 8 

Эта функция работает для диапазонов, охватывающих столетнюю эпоху.

calendar.weekday(year, month, day) :

Функция calendar.weekday() возвращает целое число, которое означает день недели, по умолчанию 0 — понедельник, 6 — воскресенье. Аргументы year — год начиная с 1970 — …, month — месяц в диапазоне 1 — 12, day месяц в диапазоне 1 — 31.

>>> import calendar >>> calendar.weekday(2020, 5, 9) # 5 
calendar.monthrange(year, month) :

Функция calendar.monthrange() возвращает двойной кортеж c первым рабочем днем месяца и количество дней в месяце для указанного года year и месяца month .

>>> import calendar >>> calendar.monthrange(2020, 5) # (4, 31) >>> calendar.monthrange(2020, 7) # (2, 31) 
calendar.monthcalendar(year, month) :

Функция calendar.monthcalendar() возвращает матрицу, представляющую календарь на месяц.

Каждый ряд представляет неделю. Дни, которые не входят в указанный месяц представлены нулями. Каждая неделя начинается с понедельника, если не установлено другое функцией ​​ calendar.setfirstweekday() .

>>> import calendar >>> calendar.monthcalendar(2020, 7) # [ # [0, 0, 0, 0, 1, 2, 3], # [4, 5, 6, 7, 8, 9, 10], # [11, 12, 13, 14, 15, 16, 17], # [18, 19, 20, 21, 22, 23, 24], # [25, 26, 27, 28, 29, 30, 31] # ] 
calendar.prmonth(theyear, themonth, w=0, l=0) :

Функция calendar.prmonth() печатает в интерпретатор календарь на месяц, возвращенный функцией calendar.month() .

calendar.month(theyear, themonth, w=0, l=0) :

Функция calendar.month() возвращает календарь на месяц в многострочной строке, используя метод cl.formatmonth() класса TextCalendar() .

Возвращаемая строка может быть сохранена в текстовый файл или напечатана функцией print() ,

calendar.prcal(year, w=0, l=0, c=6, m=3) :

Функция calendar.prcal() печатает в интерпретатор календарь на весь год, возвращенный функцией calendar.calendar() .

calendar.calendar(year, w=2, l=1, c=6, m=3) :

Функция calendar.calendar() возвращает трехколонный календарь на весь год в виде многострочной строки, используя метод cl.formatyear() класса TextCalendar() .

Возвращаемая строка может быть сохранена в текстовый файл или напечатана функцией print() ,

calendar.timegm(tuple) :

Несвязанная, но удобная функция calendar.timegm() , которая принимает структуру времени и возвращает соответствующее значение времени в секундах Unix. Фактически функция time.gmtime() и calendar.timegm() обратны друг другу.

>>> import calendar, time >>> struct = time.gmtime() >>> struct # time.struct_time(tm_year=2020, tm_mon=5, # tm_mday=4, tm_hour=10, tm_min=28, tm_sec=54, # tm_wday=0, tm_yday=125, tm_isdst=0) >>> sec = calendar.timegm(struct) >>> sec # 1588588134 >>> time.gmtime(sec) # time.struct_time(tm_year=2020, tm_mon=5, # tm_mday=4, tm_hour=10, tm_min=28, tm_sec=54, # tm_wday=0, tm_yday=125, tm_isdst=0) 

Модуль calendar имеет следующие атрибуты данных:

calendar.day_name :

Атрибут calendar.day_name() представляет собой итератор названий дней недели в текущей локали.

>>> import calendar, locale >>> list(calendar.day_name) # ['Monday', 'Tuesday', 'Wednesday', # 'Thursday', 'Friday', 'Saturday', 'Sunday'] >>> locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8') # 'ru_RU.UTF-8' >>> list(calendar.day_name) # ['Понедельник', 'Вторник', 'Среда', # 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'] 
calendar.day_abbr :

Атрибут calendar.day_abbr() представляет собой итератор сокращенных названий дней недели в текущей локали.

>>> import calendar, locale >>> list(calendar.day_abbr) # ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] >>> locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8') # 'ru_RU.UTF-8' >>> list(calendar.day_abbr) # ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'] 
calendar.MONDAY :
calendar.TUESDAY :
calendar.WEDNESDAY :
calendar.THURSDAY :
calendar.FRIDAY :
calendar.SATURDAY :
calendar.SUNDAY :

Псевдонимы дней недели, где calendar.MONDAY = 0, а calendar.SUNDAY = 6.

calendar.Day :

Класс calendar.Day представляет собой перечисление, определяющее дни недели как целочисленные константы. Члены этого перечисления экспортируются в область модуля как с calendar.MONDAY по calendar.SUNDAY .

calendar.month_name :

Атрибут calendar.month_name() представляет собой итератор названий месяцев года в текущей локали.

Соответствует обычному соглашению, что январь — это месяц номер 1, поэтому список имеет длину в 13 элементов, первый из которых — пустая строка.

>>> import calendar, locale >>> list(calendar.month_name) # ['', 'January', 'February', 'March', 'April', # 'May', 'June', 'July', 'August', 'September', # 'October', 'November', 'December'] >>> locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8') # 'ru_RU.UTF-8' >>> list(calendar.month_name) # ['', 'января', 'февраля', 'марта', 'апреля', # 'мая', 'июня', 'июля', 'августа', 'сентября', # 'октября', 'ноября', 'декабря'] 
calendar.month_abbr :

Атрибут calendar.month_abbr() представляет собой итератор сокращенных названий месяцев года в текущей локали.

Соответствует обычному соглашению, что январь — это месяц номер 1, поэтому список имеет длину в 13 элементов, первый из которых — пустая строка.

>>> import calendar, locale >>> list(calendar.month_abbr) # ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', # 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] >>> locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8') # 'ru_RU.UTF-8' >>> list(calendar.month_abbr) # ['', 'янв', 'фев', 'мар', 'апр', 'мая', 'июн', # 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'] 
calendar.JANUARY :
calendar.FEBRUARY :
calendar.MARCH :
calendar.APRIL :
calendar.MAY :
calendar.JUNE :
calendar.JULY :
calendar.AUGUST :
calendar.SEPTEMBER :
calendar.OCTOBER :
calendar.NOVEMBER :
calendar.DECEMBER
:

Псевдонимы месяцев года, где calendar.JANUARY = 1 и calendar.DECEMBER = 12.

calendar.Month :

Класс calendar.Month представляет собой перечисление, определяющее месяцы года как целочисленные константы. Члены этого перечисления экспортируются в область видимости модуля с calendar.JANUARY по calendar.DECEMBER .

  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Класс Calendar() модуля calendar
  • Класс TextCalendar() модуля calendar
  • Функция HTMLCalendar() модуля calendar
  • Текстовый и HTML календари на русском языке
  • Функции и атрибуты модуля calendar

Как в python определить день недели?

Делал я скрипт, который печатает день недели в виде строки. Начал я с простого, чтобы для начала выводилось целое число в виде номера текущего дня недели. Посмотрел на сайтах, рекомендуют библиотеку datetime. Использовал способ isoweekday() , вылезла ошибка: Вот какой код я использовал:

from datetime import datetime current_weekday = datetime.weekday() print(current_weekday) 

Отслеживать

49.6k 17 17 золотых знаков 57 57 серебряных знаков 101 101 бронзовый знак

Python узнать день недели по дате [дубликат]

Как(или фрагмент кода), что бы по дате узнать какой день недели был! например сегодня 15.01.2023 — Воскресенье, 15.01.2009 — какой день недели.

Отслеживать
14k 12 12 золотых знаков 44 44 серебряных знака 77 77 бронзовых знаков
задан 15 янв 2023 в 9:19
Дмитрий Миронов Дмитрий Миронов
5 4 4 бронзовых знака
Commented 15 янв 2023 в 9:39
Фраза «я новичок» не является индульгенцией на ничегонеделание.
Commented 15 янв 2023 в 10:28

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

def get_weekday(user_date): user_date = datetime.strptime(user_date, "%y-%m-%d %H:%M") weekday_num = datetime.isoweekday(user_date) weekdays = return weekdays.get(weekday_num) 

Отслеживать
ответ дан 15 янв 2023 в 10:07
1 1 1 бронзовый знак

Вы можете использовать класс datetime из стандартного модуля datetime :

from datetime import datetime day = datetime.strptime("15.01.2009", "%d.%m.%Y") day_of_weeek = day.weekday() 

В результате вы получите в переменной day_of_weeek номер дня в недели, начиная с нуля:
0 — понедельник, 1 — вторник, . 6 — воскресение.

  1. Класс datetime содержит метод .strptime() , который переводит дату в форме строки в объект типа datetime .
  2. Когда вы уже имеете вашу дату в виде объекта типа datetime (в переменной day ), вы получите удобство использовать различные методы этого класса, в вашем случае метод weekday() .
  3. Второй параметр метода .strptime() — в нашем случае «%d.%m.%Y» — означает, что наша строка с датой ( «15.01.2009» ) в формате
    • день ( %d ), двузначный,
    • точка ( . ),
    • месяц ( %m ), двузначный,
    • точка ( . ),
    • год ( %Y ), четырёхзначный.

Модуль datetime

Python 3 логотип

Модуль datetime предоставляет классы для обработки времени и даты разными способами. Поддерживается и стандартный способ представления времени, однако больший упор сделан на простоту манипулирования датой, временем и их частями.

Классы, предоставляемые модулем datetime:

Класс datetime.date(year, month, day) — стандартная дата. Атрибуты: year, month, day. Неизменяемый объект.

Класс datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None) — стандартное время, не зависит от даты. Атрибуты: hour, minute, second, microsecond, tzinfo.

Класс datetime.timedelta — разница между двумя моментами времени, с точностью до микросекунд.

Класс datetime.tzinfo — абстрактный базовый класс для информации о временной зоне (например, для учета часового пояса и / или летнего времени).

Класс datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None) — комбинация даты и времени.

  • datetime.MINYEAR (1) ≤ year ≤ datetime.MAXYEAR (9999)
  • 1 ≤ month ≤ 12
  • 1 ≤ day ≤ количество дней в данном месяце и году

Методы класса datetime:

datetime.today() — объект datetime из текущей даты и времени. Работает также, как и datetime.now() со значением tz=None.

datetime.fromtimestamp(timestamp) — дата из стандартного представления времени.

datetime.fromordinal(ordinal) — дата из числа, представляющего собой количество дней, прошедших с 01.01.1970.

datetime.now(tz=None) — объект datetime из текущей даты и времени.

datetime.combine(date, time) — объект datetime из комбинации объектов date и time.

datetime.strptime(date_string, format) — преобразует строку в datetime (так же, как и функция strptime из модуля time).

datetime.strftime(format) — см. функцию strftime из модуля time.

datetime.date() — объект даты (с отсечением времени).

datetime.time() — объект времени (с отсечением даты).

datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]) — возвращает новый объект datetime с изменёнными атрибутами.

datetime.timetuple() — возвращает struct_time из datetime.

datetime.toordinal() — количество дней, прошедших с 01.01.1970.

datetime.timestamp() — возвращает время в секундах с начала эпохи.

datetime.weekday() — день недели в виде числа, понедельник — 0, воскресенье — 6.

datetime.isoweekday() — день недели в виде числа, понедельник — 1, воскресенье — 7.

datetime.isocalendar() — кортеж (год в формате ISO, ISO номер недели, ISO день недели).

datetime.isoformat(sep=’T’) — красивая строка вида «YYYY-MM-DDTHH:MM:SS.mmmmmm» или, если microsecond == 0, «YYYY-MM-DDTHH:MM:SS»

datetime.ctime() — см. ctime() из модуля time.

Пример работы с классом datetime:

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *