Python calendar模塊詳情

復習回顧:

Python 對於時間日期操作提供瞭很多方法,我們前面已經學習瞭2個模塊:

  • 基於Unix 時間戳范圍限制在1970~2038年的時間處理的time模塊
  • 提供六個類對時間日期更加人性化處理的datetime模塊

在日常生活工作中,除瞭每一天時間及日期Python都提供瞭具體的模塊來進行處理,那麼日期的集合要使用什麼模塊來處理呢?

Python 專門為瞭處理日歷提供瞭calendar日歷模塊。那麼,本期我們來學習一下calender模塊相關方法及屬性

1. calendar 模塊概述

calendar 模塊提供與日歷相關的實用函數,幫助我們得到與日歷相關的信息。

1.1calendar 特點

  1. calendar 模塊是基於datetime.date.weekday()對計算每一周的周數
  2. calendar 默認星期一是每一周的第一天,星期天是一周的最後一天
  3. calendar 提供calendar.setfirstweeksday()來更改指定星期幾為一周的第一天

1.2calendar 類結構

  • 我們可以查看Python內置庫-calendar.py文件
  • calendar 主要提供三大類:CalendarTextCalendarHTMLCalendar
  • 其中,calendarTextCalendarHTMLCalendar的基類

1.3calendar 使用步驟

  • calendar是內置庫,直接使用import導入
import calendar

2. calendar 相關方法

2.2calendar 模塊相關方法

方法 說明
calendar.firstweekday() 設置每星期的第一天數值
calendar.isleap(year) 判斷是閏年,則返回Ture
calendar.leapdays(y1,y2) 計算要y1與y2的閏年數
calendar.weekday(year,month,day) 返回某日是星期幾
calendar.weekheader(n) 星期幾的縮寫名的頭
calendar.mothrange(year,month) 計算出指定年份的某月第一天是星期幾和天數
calendar.prmonth(theyear,themonth,w=0,1=0) 格式化打印指定年的某月的日歷
calendar.month(theyear,themonth,w=0,1=0) 使用TextCalendar類formation()以多行字符串形式返回月份日歷
calendar.prcal(year,w=1,1=0,c=6,m=3) 格式化打印出整年的日歷
calendar.calendar(year,w=1,1=0,c=6,m=3) 以整年3列的日歷多行字符串的形式的日歷

2.3calendar 模塊屬性

方法 說明
calendar.day_name 當前語言環境下星期幾的數組
calendar.day_abbr 當前語言環境下星期幾的縮寫
calendar.month_name 當前語言下一年的月份數組
calendar.month_abbr 當前語言下一年的月份縮寫

2.4calendar 模塊提供5個類

類方法 說明
calendar.Calendar(firstweekday=0) 創建Calendar對象,默認周一為第一天
calendar.TextCalendar(firstweekday=0) 生成純文本日歷對象
calendar.HTMLCalendar(firstweekday=0) 生成HTML日志對象
calendar.LocaleTextCalenda(firstweekday=0,locale=None) 語言環境名稱
calendar.LocaleHTMLCalendar(firstweekday=0,locale=None) 語言環境名稱

2.5calendar.Calendar類實例相關方法

方法 說明
cal.itermonthdates(year,month) 返回一個year年month月的日期的迭代器
cal.iterweekdats() 返回為一星期的數字的迭代器
cal.itermonthdays(year,month) 返回的日期為當月每一天的日期對應的天數,對於不在當月的日期,會顯示0
cal.itermonthdays2(year,month) 返回一個由日期和代表星期幾的數字組成的元組
cal.itermonthdays3(year,month) 返回一個由年月日組成的元組
cal.itermonthdays4(year,month) 返回一個由年月日和星期幾的數字組成的元組
cal.monthdatescalendar(year,month) 返回一個由datetime.date對象組成的年月的周列表
cal.monthdays2calendar(year,month) 返回一個由日期數字和周幾的數字的二元元組
cal.monthdayscalendar(year,month) 返回一個由七個日期數字的組成周列表
cal.yeardatescalendar(year,width=3) 返回可以用來格式化的指定年月的數據列表
cal.yeardays2calendar(year,width=3) 返回用來模式化的指定年月的數據。在這個月的日期為0,周列表由日期和星期數組成的元組
cal.yeardayscalendar(year,width=3) 返回一個周列表是日期數字組成可以用來模式化的指定年月的數據

2.6calendar.TextCalendar類實例相關方法

方法 說明
tc.formatmonth(theyear,themonth,w=0,1=0) 以多行字符串來表示指定年月的日歷
tc.prmonth(theyear,themonth,w=0,1=0) 格式化打印一個月的日歷
tc.formatyear(theyear,w=0,1=1,c=6,m=3) 返回一個m列的日歷
tc.pryear(theyear,w=0,1=1,c=6,m=3) 格式化打印一整年的日歷

2.7calendar.HTMLCalendar類實例相關方法

方法 說明
htl.formatmonth(theyear,themonth,withyear=True) 返回一個HTML表格的指定的年月日歷
htl.formatyear(theyear,width=3) 返回HTML指定年份的日歷
htl.formatyearpage(theyear,width=3,css=’calendar.css’,encoding=None) 返回一個完整的HTML頁面作為指定的年份日歷

calendar.HTMLCalendar類實例相關屬性

2.8calendar.HTMLCalendar類實例相關屬性

方法 說明
htl.cssclasses 星期一到星期天的CSS class 列表
htl.cssclass_noday 工作日的CSS類在上個月或下個月發生
htl.cssclasses_weekday_head 用於標題行中工作日名稱的css列表
htl.cssclass_month_head 月份的CSS列表標題
htl.cssclass_month 某個月的月歷CSS類
htl.cssclass_year 某個年的年歷CSS類
htl.cssclasses_year_head 年歷的CSS列表標題

3. 實操

打印2021年年歷

import calendar

# 打印2021年歷

print(calendar.calendar(2021))

打印指定某年的月歷

print(calendar.month(2021,11))

4、總結

我們對calendar模塊日歷相關的方法的學習,calendar模塊主要提供3個主要類Calendar、TextCalendar、HTMLCalendar。我們可以更好地以字符串或者HTML形式打印出指定的日歷。

到此這篇關於 Python calendar模塊詳情的文章就介紹到這瞭,更多相關 Python calendar模塊內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: