Учебное пособие по Python CALENDAR с примером

Anonim

Модуль календаря в Python имеет класс календаря, который позволяет выполнять вычисления для различных задач на основе даты, месяца и года. Кроме того, классы TextCalendar и HTMLCalendar в Python позволяют редактировать календарь и использовать его в соответствии с вашими требованиями.

Посмотрим, что мы можем сделать с календарем Python.

Шаг 1) Запустите код.

  • Строка кода №1: Мы начинаем с «календаря импорта», который импортирует все классы этого модуля.
  • Строка кода №3: ​​c = calendar.TextCalendar (calendar.SUNDAY) сообщает интерпретатору создать текстовый календарь. Начало месяца - воскресенье. В Python вы можете отформатировать календарь, так как вы можете изменить день месяца, чтобы начать с
  • Строка кода # 4: str = c.formatmonth (2025,1) Мы создаем календарь на 2025 год, 1 месяц - январь.
  • Строка кода # 5: print str распечатает результат.

Давайте быстро изменим значение с воскресенья на четверг и проверим вывод

Шаг 2) Вы также можете распечатать календарь в формате HTML, эта функция полезна для разработчиков, если они хотят внести какие-либо изменения во внешний вид календаря.

Шаг 3) Перебирает дни месяца с помощью c.itermonthday (2025,4), он получит общее количество дней в этом месяце.

  • Когда вы выполняете код, чтобы получить общее количество дней для определенного месяца, скажем «апрель», тогда вы получите 30 дней на выходе, но вы также увидите некоторые нули вместе с этими днями в начале, а иногда и в конце. .
  • Нули в выходных данных означают, что день недели находится в перекрывающемся месяце, что означает, что он не принадлежит этому месяцу.
  • Эти нули появляются на выходе , потому что в вашем коде вы упоминали день (четверг), поэтому при вызове функции «c.itermonthdays», он начинает отсчет дни с четверга и ваш четверга не может начинаться с датой 1 - го апреля он может быть 28 - го или 29 - го марта, так что при выполнении кода он начнет отсчет дни с 28 - го марта и любые дней после этого до 1 - го апреля. Эти дни будут считаться нулевыми, и на выходе вы увидите эти нули, и то же самое применимо к концу месяца.
  • Таким образом, за исключением даты 1-30, все даты предыдущего, а также месяца после окончания будут отображаться в выводе как нули.

Шаг 4) Вы можете получить данные из локальной системы, например, месяцы, дни недели и т. Д.

  • Вывод здесь показывает, что мы распечатали название месяца из локальной системы. Точно так же вы также можете получить название дня недели, как показано ниже.
  • Результат будет зависеть от локальной системы, предположим, что если ваша локальная система - это какая-то другая страна, тогда она выдаст результат в соответствии с местными настройками этой страны. Здесь у нас есть месяцы, поэтому разницы не будет, но если это неделя или день, то точно будет.

Шаг 5) Вы можете получить список определенного дня за целый год. Например, каждый первый понедельник недели есть день аудита. Вы хотите знать дату первого понедельника каждого месяца. Вы можете использовать этот код

  • mycal = calendar.monthcalendar (2025, месяц) создаст календарь на месяц
  • Установите переменные week1 и week2 на первую и вторую неделю календаря.
  • Проверьте, есть ли на неделе 1 понедельник, установите день аудита
  • В противном случае установите день аудита как первый понедельник недели 2.
  • Вывод показывает дату первого понедельника, выпадающего в этом месяце.
  • Длина этого объекта Cal будет определенной длиной в зависимости от того, сколько недель в месяце. В нашем случае это будет один или два, так как первый понедельник недели чаще всего приходится на первую неделю, но если нет, то рассмотрите вторую неделю. Давайте посмотрим подробно, почему мы также рассматриваем вторую неделю.
  • Здесь мы используем календарную константу Monday, объект calendar предоставляет вам константы, которые представляют воскресенье, понедельник, вторник и т. Д., И т. Д. Мы уже видели это раньше. Итак, если на первой неделе день, представленный константой понедельника, не равен 0, помните, что нули означают дни, принадлежащие другому месяцу. Итак, в этом случае, если он равен нулю, это будет понедельник, принадлежащий предыдущему месяцу. Но если первый понедельник не равен 0, это означает, что мой день аудита будет в пределах первой недели. В противном случае, если это 0, то первый понедельник не в первую неделю месяца, он должен быть во вторую.
  • Итак, я говорю: «Хорошо, устанавливаю переменную дня аудита на понедельник, представленный второй неделей». Итак, день аудита вернется с любым днем ​​либо для первой, либо для второй недели.

Вот полный код

Пример Python 2

импорт календаря# Создать календарь в виде простого текстаc = calendar.TextCalendar (calendar.THURSDAY)str = c.formatmonth (2025, 1, 0, 0)печать str# Создать календарь в формате HTMLhc = calendar.HTMLCalendar (calendar.THURSDAY)str = hc.formatmonth (2025, 1)печать str# цикл по дням месяца# нули указывают на то, что день недели находится в следующем или перекрывающемся месяце.для i в c. месяцы (2025, 4):распечатать я# Календарь может давать информацию на основе местных, например, названий дней и месяцев (полная и сокращенная формы)для имени в calendar.month_name:напечатать имяна день в calendar.day_name:день печати# рассчитывать дни на основе правила: например, день аудита во второй понедельник каждого месяца# Выясните, какие дни будут в каждом месяце, мы можем использовать скрипт, как показано здесьза месяц в диапазоне (1, 13):# Получает список недель, представляющих месяцmycal = calendar.monthcalendar (2025, месяц)# Первый ПОНЕДЕЛЬНИК должен быть в течение первых двух недель.неделя1 = mycal [0]неделя2 = mycal [1]если week1 [calendar.MONDAY]! = 0:auditday = week1 [calendar.MONDAY]еще:# если первый ПОНЕДЕЛЬНИК не на первой неделе, он должен быть на второй неделеauditday = week2 [calendar.MONDAY]напечатайте "% 10s% 2d"% (calendar.month_name [месяц], контрольный день)

Пример Python 3

импорт календаря# Создать календарь в виде простого текстаc = calendar.TextCalendar (calendar.THURSDAY)str = c.formatmonth (2025, 1, 0, 0)печать (str)# Создать календарь в формате HTMLhc = calendar.HTMLCalendar (calendar.THURSDAY)str = hc.formatmonth (2025, 1)печать (str)# цикл по дням месяца# нули указывают на то, что день недели находится в следующем или перекрывающемся месяце.для i в c. месяцы (2025, 4):печать (я)# Календарь может давать информацию на основе местных, например, названий дней и месяцев (полная и сокращенная формы)для имени в calendar.month_name:печать (имя)на день в calendar.day_name:печать (день)# рассчитывать дни на основе правила: например, день аудита во второй понедельник каждого месяца# Выясните, какие дни будут в каждом месяце, мы можем использовать скрипт, как показано здесьза месяц в диапазоне (1, 13):# Получает список недель, представляющих месяцmycal = calendar.monthcalendar (2025, месяц)# Первый ПОНЕДЕЛЬНИК должен быть в течение первых двух недель.неделя1 = mycal [0]неделя2 = mycal [1]если week1 [calendar.MONDAY]! = 0:auditday = week1 [calendar.MONDAY]еще:# если первый ПОНЕДЕЛЬНИК не на первой неделе, он должен быть на второй неделеauditday = week2 [calendar.MONDAY]print ("% 10s% 2d"% (calendar.month_name [месяц], контрольный день))

Резюме:

  • В Python вы можете отформатировать календарь так, как хотите, так как вы можете изменить день месяца, чтобы начать
  • Распечатать календарь в формате HTML
  • Получить данные из локальной системы, например, месяцы или рабочие дни.
  • Получить список определенного дня за целый год