Підручник з календаря Python із прикладом

Anonim

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

Давайте подивимося, що ми можемо зробити з календарем Python.

Крок 1) Запустіть код.

  • Рядок коду №1: Ми починаємо з "календаря імпорту", який імпортує всі класи цього модуля.
  • Кодовий рядок №3: c = календар.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 буде певною, залежно від кількості тижнів у місяці. У нашому випадку це буде один або два, оскільки найчастіше перший понеділок тижня буде першим тижнем, але якщо ні, то розглянемо другий тиждень. Подивимось детально, чому ми також розглядаємо другий тиждень.
  • Тут ми використовуємо постійну понеділок календаря, об’єкт календаря дає вам константи, які представляють неділю, понеділок, вівторок тощо. Ми вже бачили це раніше. Отже, якщо в перший тиждень день, представлений константою понеділка, не дорівнює 0, пам’ятайте, нулі означають дні, що належать до іншого місяця. Отже, у цьому випадку, якщо це нуль, це буде понеділок, який належить до попереднього місяця. Але якщо перший понеділок не дорівнює 0, це означає, що мій день аудиту буде в межах тижня. В іншому випадку, якщо це 0, то перший понеділок не в перший тиждень місяця, це повинен бути другий.
  • Отже, тоді я кажу добре, встановіть змінну мого дня аудиту як понеділок, представлений другим тижнем. Отже, день аудиту повернеться із будь-яким днем ​​для першого або другого тижня.

Ось повний код

Приклад Python 2

імпортувати календар# Створіть звичайний текстовий календарc = календар.TextCalendar (календар.ЧЕТВЕРД)str = c.formatmonth (2025, 1, 0, 0)друк вул# Створіть календар у форматі HTMLhc = календар.HTMLCalendar (календар.ЧЕТВЕРД)str = hc.formatmonth (2025, 1)друк вул# цикл протягом місяця# нулі означають, що день тижня знаходиться в наступному місяці або місяці, що перекриваєтьсядля i в c.itermonthdays (2025, 4):друк i# Календар може подавати інформацію на основі місцевих, таких назв днів і місяців (повна та скорочена форми)для імені в календарі. ім'я місяця:ім'я друкуза день у календарі. ім'я_ дня:день друку# розрахувати дні на основі правила: Наприклад, день аудиту у другий понеділок кожного місяця# З'ясуйте, які дні це буде для кожного місяця, ми можемо використовувати сценарій, як показано тутза місяць в діапазоні (1, 13):# Він отримує список тижнів, що представляють місяцьmycal = calendar.monthcalendar (2025, місяць)# Перший ПОНЕДІЛОК повинен бути протягом перших двох тижнівтиждень1 = мікал [0]тиждень2 = мікал [1]якщо тиждень1 [календар.ПОНЕДЕЛЬ]! = 0:аудиторський день = тиждень1 [календар.ПОНЕДЕЛЬ]ще:# якщо перший ПОНЕДІЛОК не на першому тижні, це повинен бути на другому тижніаудиторський день = тиждень2 [календар.ПОНЕДЕЛЬ]друк "% 10s% 2d"% (calendar.month_name [місяць], аудиторський день)

Приклад Python 3

імпортувати календар# Створіть звичайний текстовий календарc = календар.TextCalendar (календар.ЧЕТВЕРД)str = c.formatmonth (2025, 1, 0, 0)друк (str)# Створіть календар у форматі HTMLhc = календар.HTMLCalendar (календар.ЧЕТВЕРД)str = hc.formatmonth (2025, 1)друк (str)# цикл протягом місяця# нулі означають, що день тижня знаходиться в наступному місяці або місяці, що перекриваєтьсядля i в c.itermonthdays (2025, 4):друк (i)# Календар може подавати інформацію на основі місцевих, таких назв днів і місяців (повна та скорочена форми)для імені в календарі. ім'я місяця:друк (назва)за день у календарі. ім'я_ дня:друк (день)# розрахувати дні на основі правила: Наприклад, день аудиту у другий понеділок кожного місяця# З'ясуйте, які дні це буде для кожного місяця, ми можемо використовувати сценарій, як показано тутза місяць в діапазоні (1, 13):# Він отримує список тижнів, що представляють місяцьmycal = calendar.monthcalendar (2025, місяць)# Перший ПОНЕДІЛОК повинен бути протягом перших двох тижнівтиждень1 = мікал [0]тиждень2 = мікал [1]якщо тиждень1 [календар.ПОНЕДЕЛЬ]! = 0:аудиторський день = тиждень1 [календар.ПОНЕДЕЛЬ]ще:# якщо перший ПОНЕДІЛОК не на першому тижні, це повинен бути на другому тижніаудиторський день = тиждень2 [календар.ПОНЕДЕЛЬ]print ("% 10s% 2d"% (calendar.month_name [місяць], аудиторський день))

Короткий зміст:

  • У Python ви можете відформатувати календар так, як хочете, оскільки ви можете змінити день місяця для початку
  • Роздрукуйте Календар у форматі HTML
  • Отримати дані з локальної системи, наприклад місяці чи будні
  • Отримайте список конкретного дня протягом цілого року