python3從零學習-5.2.1、日曆相關模塊calendar

源代碼: Lib/calendar.py
      這個模塊讓你可以輸出像 Unix cal 那樣的日曆,它還提供了其它與日曆相關的實用函數。 默認情況下,這些日曆把星期一當作一週的第一天,星期天爲一週的最後一天(按照歐洲慣例)。 可以使用 setfirstweekday() 方法設置一週的第一天爲星期天 (6) 或者其它任意一天。 使用整數作爲指定日期的參數。
 
class calendar.Calendar(firstweekday=0)
    創建一個 Calendar 對象。 firstweekday 是一個整數,用於指定一週的第一天。 0 是星期一(默認值),6 是星期天。
    Calendar 對象提供了一些可被用於準備日曆數據格式化的方法。 這個類本身不執行任何格式化操作。 這部分任務應由子類來完成。
    Calendar 類的實例有下列方法:

    iterweekdays()
        返回一個迭代器,迭代器的內容爲一星期的數字。迭代器的第一個值與 firstweekday 屬性的值一致。

    itermonthdates(year, month)
        返回一個迭代器,迭代器的內容爲 year 年 month 月(1-12)的日期。
        這個迭代器返回當月的所有日期 ( datetime.date 對象),日期包含了本月頭尾用於組成完整一週的日期。

    itermonthdays2(year, month)
        返回與itermonthdates()類似的迭代器。返回的天是一個元組,其中包含天的編號和周的編號。

    itermonthdays(year, month)
        返回與itermonthdates()類似的迭代器。返回的天數就是天數。

    monthdatescalendar(year, month)
        返回一個表示指定年月的周列表。周列表由七個 datetime.date 對象組成。

    monthdays2calendar(year, month)
        返回一個表示指定年月的周列表。周列表由七個代表日期的數字和代表周幾的數字組成的二元元組。

    monthdayscalendar(year, month)
        返回一個表示指定年月的周列表。周列表由七個代表日期的數字組成。

    yeardatescalendar(year, width=3)
        返回可以用來格式化的指定年月的數據。返回的值是一個列表,列表是月份組成的行。
        每一行包含了最多 width 個月(默認爲3)。每個月包含了4到6周,每週包含1–7天。每一天使用 datetime.date 對象。

    yeardays2calendar(year, width=3)
        返回可以用來模式化的指定年月的數據(與 yeardatescalendar() 類似)。
        周列表的元素是由表示日期的數字和表示星期幾的數字組成的元組。不在這個月的日子爲0。

    yeardayscalendar(year, width=3)
        返回可以用來模式化的指定年月的數據(與 yeardatescalendar() 類似)。周列表的元素是表示日期的數字。不在這個月的日子爲0。

 

class calendar.TextCalendar(firstweekday=0)
    可以使用這個類生成純文本日曆。
    TextCalendar 實例有以下方法:

    formatmonth(theyear, themonth, w=0, l=0)
        返回一個多行字符串來表示指定年月的日曆。w 爲日期的寬度,但始終保持日期居中。l 指定了每星期佔用的行數。
        以上這些還依賴於構造器或者setfirstweekday() 方法指定的周的第一天是哪一天。

    prmonth(theyear, themonth, w=0, l=0)
        與 formatmonth() 方法一樣,返回一個月的日曆。

    formatyear(theyear, w=2, l=1, c=6, m=3)
        返回一個多行字符串,這個字符串爲一個 m 列日曆。可選參數 w, l, 和 c 分別表示日期列數, 周的行數, 和月之間的間隔。
        同樣,以上這些還依賴於構造器或者 setfirstweekday() 指定哪一天爲一週的第一天。日曆的第一年由平臺依賴於使用的平臺。

    pryear(theyear, w=2, l=1, c=6, m=3)
        與 formatyear() 方法一樣,返回一整年的日曆。

 

class calendar.HTMLCalendar(firstweekday=0)
    可以使用這個類生成 HTML 日曆。
    HTMLCalendar 實例有以下方法:

    formatmonth(theyear, themonth, withyear=True)
        返回一個 HTML 表格作爲指定年月的日曆。 withyear 爲真,則年份將會包含在表頭,否則只顯示月份。

    formatyear(theyear, width=3)
        返回一個 HTML 表格作爲指定年份的日曆。 width (默認爲3) 用於規定每一行顯示月份的數量。

    formatyearpage(theyear, width=3, css='calendar.css', encoding=None)
        返回一個完整的 HTML 頁面作爲指定年份的日曆。 
        width (默認爲3) 用於規定每一行顯示的月份數量。 
        css 爲層疊樣式表的名字。如果不使用任何層疊樣式表,可以使用 None。 
        encoding 爲輸出頁面的編碼 (默認爲系統的默認編碼)。

 

 
class calendar.LocaleTextCalendar(firstweekday=0, locale=None)
    這個子類 TextCalendar 可以在構造函數中傳遞一個語言環境名稱,並且返回月份和星期幾的名稱在特定語言環境中。
    如果此語言環境包含編碼,則包含月份和工作日名稱的所有字符串將作爲 unicode 返回。



class calendar.LocaleHTMLCalendar(firstweekday=0, locale=None)
    可以在構造函數中傳遞HTMLCalendar的這個子類的地區名稱,並將返回指定地區的月份和工作日名稱。
    如果這個地區包含一個編碼,那麼所有包含月份和工作日名稱的字符串都將以unicode的形式返回。

 

註解:
    這兩個類的 formatweekday() 和 formatmonthname() 方法臨時更改dang當前區域至給定 locale 。由於當前的區域設置是進程範圍的設置,因此它們不是線程安全的。
 
對於簡單的文本日曆,這個模塊提供了以下方法:
calendar.setfirstweekday(weekday)
    設置每一週的開始(0 表示星期一,6 表示星期天)。
    calendar還提供了 MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY 和 SUNDAY 幾個常量方便使用。
 
calendar.firstweekday()
    返回當前設置的每星期的第一天的數值。
 
calendar.isleap(year)
    如果 year 是閏年則返回 True ,否則返回 False。
 
calendar.leapdays(y1, y2)
    返回在範圍 y1 至 y2 (包含 y1 和 y2 )之間的閏年的年數,其中 y1 和 y2 是年份。
    此函數適用於跨越一個世紀變化的範圍。
 
calendar.weekday(year, month, day)
    返回一週中的某一天 ( 0 是週一) 以年( 1970 – …),月( 1 – 12 ),日( 1 – 31 )的格式。
 
calendar.weekheader(n)
    返回一個包含星期幾的縮寫名的頭。 n 指定星期幾縮寫的字符寬度。
 
calendar.monthrange(year, month)
    返回指定年份的指定月份第一天是星期幾和這個月的天數。
 
calendar.monthcalendar(year, month)
    返回表示一個月的日曆的矩陣。 每一行代表一週;此月份外的日子由零表示。 每週從週一開始,除非使用 setfirstweekday() 改變設置。
 
calendar.prmonth(theyear, themonth, w=0, l=0)
    打印由 month() 返回的一個月的日曆。
 
calendar.month(theyear, themonth, w=0, l=0)
    使用 TextCalendar 類的 formatmonth() 以多行字符串形式返回月份日曆。
 
calendar.prcal(year, w=0, l=0, c=6, m=3)
    打印由 calendar() 返回的整年的日曆。
 
calendar.calendar(year, w=2, l=1, c=6, m=3)
    使用 TextCalendar 類的 formatyear() 返回整年的三列的日曆以多行字符串的形式。
 
calendar.timegm(tuple)
    一個不相關但很好用的函數。
    它接受一個時間元組例如 time 模塊中的 gmtime() 函數的返回並返回相應的 Unix 時間戳,假定 1970 年開始計數,POSIX編碼。
    實際上, time.gmtime() 和 timegm() 是彼此相反的。
 
calendar 模塊導出以下數據屬性:
calendar.day_name
    在當前的語言環境下表示星期幾。
 
calendar.day_abbr
    在當前語言環境下表示星期幾縮寫的數組。
 
calendar.month_name
    在當前語言環境下表示一年中月份的數組。這遵循一月的月號爲 1 的通常慣例,所以它的長度爲 13 且 month_name[0] 是空字符串。
 
calendar.month_abbr
    在當前語言環境下表示月份簡寫的數組。這遵循一月的月號爲 1 的通常慣例,所以它的長度爲 13 且 month_abbr[0] 是空字符串。
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章