Учебник Python CALENDAR с примером
Модуль календаря в 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, месяц) создаст календарь на месяц
- Задайте для переменных неделя1 и неделя2 значения первой и второй недели календаря.
- Проверьте, содержит ли неделя 1 понедельник, установите день аудита.
- В противном случае установите день аудита как первый понедельник недели 2.
- В выходных данных отображается дата первого понедельника этого месяца.
- Длина этого объекта Cal будет определенной длины в зависимости от того, сколько недель в месяце. В нашем случае это будет один или два, так как первый понедельник недели чаще всего приходится на первую неделю, но если нет, то рассмотрите вторую неделю. Давайте подробно рассмотрим, почему мы также рассматриваем вторую неделю.
- Здесь мы используем константу понедельника календаря, объект календаря дает вам константы, представляющие воскресенье, понедельник, вторник и т. д. и т. д. Мы видели это ранее. Итак, если на первой неделе день, представленный константой Monday, не равен 0, помните, что нули означают дни, принадлежащие другому месяцу. Итак, в этом случае, если он равен нулю, это будет понедельник, принадлежащий предыдущему месяцу. Но если первый понедельник не равен 0, значит, мой контрольный день будет в пределах первой недели. В противном случае, если это значение равно 0, то первый понедельник приходится не на первую неделю месяца, а на вторую.
- Итак, тогда я говорю "хорошо", задайте для моей переменной дня аудита понедельник, представленный второй неделей. Таким образом, день аудита вернется к любому дню первой или второй недели.
Вот полный код
Пример Python 2
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print str # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print str # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print i # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print name for day in calendar.day_name: print day # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print "%10s %2d" % (calendar.month_name[month], auditday)
Пример Python 3
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print(str) # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print(str) # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print(i) # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print(name) for day in calendar.day_name: print(day) # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print("%10s %2d" % (calendar.month_name[month], auditday))
Обзор:
- В Python вы можете отформатировать календарь так, как вам удобно, поскольку вы можете изменить день начала месяца
- Распечатайте календарь в формате HTML
- Получить данные из локальной системы, например месяцы или дни недели.
- Получить список за определенный день в течение всего года
Python
- Учебное пособие по абстрактному классу C # с примером:что такое абстракция?
- Функция Python String strip() с ПРИМЕРОМ
- Количество строк Python() с ПРИМЕРАМИ
- Функция Python round() с ПРИМЕРАМИ
- Функция Python map() с ПРИМЕРАМИ
- Python Timeit() с примерами
- Учебное пособие по доходности в Python:генератор и пример доходности и возврата
- Счетчик Python в коллекциях с примером
- Счетчик списка Python() с ПРИМЕРАМИ
- Индекс списка Python() с примером