




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第Python標(biāo)準(zhǔn)庫calendar的使用方法目錄Calendarcalendar.Calendar(firstweekday=0)類calendar.TextCalendar(firstweekday=0)calendar.HTMLCalendar(firstweekday=0)
此模塊允許你輸出類似Unixcal程序的日歷,并提供與日歷相關(guān)的其他有用功能。值得注意的是,默認(rèn)情況下,這些日歷將星期一作為一周的第一天,將星期日作為一周的最后一天(歐洲慣例)。不過,我們可以使用setfirstweekday()方法來設(shè)置一周的第一天為星期日或h者其他工作日,指定的日期以整數(shù)形式給出。
calendar模塊主要由Calendar類與一些模塊方法構(gòu)成,Calendar類又衍生了一些子孫類來幫助我們實(shí)現(xiàn)一些特殊的功能
Calendar
模塊方法
setfirstweekday(firstweekday):指定一周的第一天,0是星期一,…,6為星期日
importcalendar
#將星期日設(shè)置為一周第一天
calendar.setfirstweekday(firstweekday=6)
firstweekday():返回一周的第一天,0是星期一,…,6為星期日
importcalendar
#將星期日設(shè)置為一周第一天
calendar.setfirstweekday(firstweekday=6)
print(calendar.firstweekday())#6
isleap(year):判斷指定是否是閏年,閏年為True,平年為False
importcalendar
#2025年是平年,所以為False
print(calendar.isleap(2025))#False
#2008年是如年,所以為True
print(calendar.isleap(2008))#True
leapdays(y1,y2):返回y1與y2年份之間的閏年數(shù)量,y1與y2皆為年份。包括起始年,不包括結(jié)束年:
importcalendar
#2008到2011之間只有2008年是閏年,所以數(shù)量為1
print(calendar.leapdays(2008,2011))#1
weekday(year,month,day):獲取指定日期為星期幾
importcalendar
#2025-08-08正是星期三,千萬別忘記2代表的是星期三
print(calendar.weekday(2025,8,8))#2
weekheader(n):返回包含星期的英文縮寫,n表示英文縮寫所占的寬度
importcalendar
print(calendar.weekheader(4))
###############打印結(jié)果如下###############
MonTueWedThuFriSatSun
monthrange(year,month):返回一個(gè)由一個(gè)月第一個(gè)天的星期與當(dāng)前月的天數(shù)組成的元組
importcalendar
#查看日歷可以知道,08-01正是星期三,并且8月共31天
print(2025,8)#(2,31)
monthcalendar(year,month):返回一個(gè)月中天數(shù)列表(不是當(dāng)前月份的天數(shù)為0),按周劃分,為一個(gè)二維數(shù)組。包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
importcalendar
calendar.setfirstweekday(firstweekday=6)
print(calendar.monthcalendar(2025,8))
###############打印結(jié)果如下###############
[[0,0,0,1,2,3,4],[5,6,7,8,9,10,11],[12,13,14,15,16,17,18],[19,20,21,22,23,24,25],[26,27,28,29,30,31,0]]
prmonth(theyear,themonth,w=0,l=0):打印一個(gè)月的日歷,theyear指定年份,themonth指定月份,w每個(gè)單元格寬度,默認(rèn)0,內(nèi)部已做處理,最小寬度為2,l每列換l行,默認(rèn)為0,內(nèi)部已做處理,至少換行1行
importcalendar
calendar.setfirstweekday(firstweekday=6)
calendar.prmonth(2025,8)
###############打印結(jié)果如下###############
August2025
SuMoTuWeThFrSa
1234
567891011
12131415161718
19202122232425
262728293031
month(theyear,themonth,w=0,l=0):返回一個(gè)月的日歷的多行文本字符串。theyear指定年份,themonth指定月份,w每個(gè)單元格寬度,默認(rèn)0,內(nèi)部已做處理,最小寬度為2,l每列換l行,默認(rèn)為0,內(nèi)部已做處理,至少換行1行
importcalendar
calendar.setfirstweekday(firstweekday=6)
print(calendar.month(2025,8))
###############打印結(jié)果如下###############
August2025
SuMoTuWeThFrSa
1234
567891011
12131415161718
19202122232425
262728293031
prcal(year,w=0,l=0,c=6,m=3):打印一年的日歷,w每個(gè)單元格寬度,默認(rèn)0,內(nèi)部已做處理,最小寬度為2,l每列換l行,默認(rèn)為0,內(nèi)部已做處理,至少換行1行,c表示月與月之間的間隔寬度,默認(rèn)為6,內(nèi)部已做處理,最小寬度為2,m表示將12個(gè)月分為m列
importcalendar
calendar.setfirstweekday(firstweekday=6)
calendar.prcal(2025,m=4)
###############打印結(jié)果如下###############
2025
JanuaryFebruaryMarchApril
SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa
1234561231231234567
789101112134567891045678910891011121314
14151617181920111213141516171112131415161715161718192021
21222324252627181920212223241819202122232422232425262728
2829303125262728252627282930312930
MayJuneJulyAugust
SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa
123451212345671234
67891011123456789891011121314567891011
13141516171819101112131415161516171819202112131415161718
20212223242526171819202122232223242526272819202122232425
272829303124252627282930293031262728293031
SeptemberOctoberNovemberDecember
SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa
11234561231
234567878910111213456789102345678
910111213141514151617181920111213141516179101112131415
16171819202122212223242526271819202122232416171819202122
232425262728292829303125262728293023242526272829
303031
calendar(year,w=2,l=1,c=6,m=3):以多行字符串形式返回一年的日歷,w每個(gè)單元格寬度,默認(rèn)2,內(nèi)部已做處理,最小寬度為2,l每列換l行,默認(rèn)為1,內(nèi)部已做處理,至少換行1行,c表示月與月之間的間隔寬度,默認(rèn)為6,內(nèi)部已做處理,最小寬度為2,m表示將12個(gè)月分為m列
importcalendar
calendar.setfirstweekday(firstweekday=6)
print(calendar.calendar(2025,m=4))
###############打印結(jié)果如下###############
2025
JanuaryFebruaryMarchApril
SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa
1234561231231234567
789101112134567891045678910891011121314
14151617181920111213141516171112131415161715161718192021
21222324252627181920212223241819202122232422232425262728
2829303125262728252627282930312930
MayJuneJulyAugust
SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa
123451212345671234
67891011123456789891011121314567891011
13141516171819101112131415161516171819202112131415161718
20212223242526171819202122232223242526272819202122232425
272829303124252627282930293031262728293031
SeptemberOctoberNovemberDecember
SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa
11234561231
234567878910111213456789102345678
910111213141514151617181920111213141516179101112131415
16171819202122212223242526271819202122232416171819202122
232425262728292829303125262728293023242526272829
30
calendar.Calendar(firstweekday=0)類
firstweekday為一個(gè)整數(shù),指定一周的第一天,0是星期一(默認(rèn)),6為星期日
iterweekdays():獲取一周的數(shù)字的迭代器,迭代器的第一個(gè)值與firstweekday的值相同
fromcalendarimportCalendar
c=Calendar()
print(list(c.iterweekdays()))#[0,1,2,3,4,5,6]--代表星期一至星期日,0為星期一,即一周的第一天
c=Calendar(firstweekday=6)
print(list(c.iterweekdays()))#[6,0,1,2,3,4,5]--代表星期日至星期六,6為星期日,即一周的第一天
itermonthdates(year,month):獲取一個(gè)月日期的迭代器,此迭代器會(huì)返回指定月份的所有日期,包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
fromcalendarimportCalendar
c=Calendar(firstweekday=6)
foriteminc.itermonthdates(2025,8):
print(item)
###############打印結(jié)果如下###############
2025-07-29
2025-07-30
2025-07-31
2025-08-01
2025-08-31
2025-09-01
可以看出,2025-07-29、2025-07-30、2025-07-31正是8月份開始的那一周的日期,而2025-09-01為8月份結(jié)束的那一周的日期,8月份所有的日期全部獲取得到!另外注意的是,這里的日期為datatime.date類型!另外,請將星期天設(shè)置為一周的第一天,否則將無法直觀顯示其作用!
itermonthdays(year,month):返回一個(gè)月天數(shù)的迭代器(不是當(dāng)前月份的天數(shù)為0),此迭代器將返回指定月份的日期數(shù)字,包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
fromcalendarimportCalendar
c=Calendar(firstweekday=6)
foriteminc.itermonthdays(2025,8):
print(item)
###############打印結(jié)果如下###############
0
因?yàn)?025-07-29、2025-07-30、2025-07-31、2025-09-01不是指定月份的日期,所以為0
itermonthdays2(year,month):返回一個(gè)月天數(shù)與星期的迭代器(不是當(dāng)前月份的天數(shù)為0),此迭代器將返回指定月份的日期數(shù)字與星期幾所代表的數(shù)字組成的元組,包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
fromcalendarimportCalendar
c=Calendar(firstweekday=6)
foriteminc.itermonthdays2(2025,8):
print(item)
###############打印結(jié)果如下###############
(0,6)
(0,0)
(0,1)
(1,2)
(31,4)
(0,5)
可以看出,2025-08-01正是星期三
monthdatescalendar(year,month):返回一個(gè)月日期列表,按周劃分,為一個(gè)二維數(shù)組。包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
fromcalendarimportCalendar
c=Calendar(firstweekday=6)
foriteminc.monthdatescalendar(2025,8):
print(item)
###############打印結(jié)果如下###############
[datetime.date(2025,7,29),datetime.date(2025,7,30),datetime.date(2025,7,31),datetime.date(2025,8,1),datetime.date(2025,8,2),datetime.date(2025,8,3),datetime.date(2025,8,4)]
[datetime.date(2025,8,5),datetime.date(2025,8,6),datetime.date(2025,8,7),datetime.date(2025,8,8),datetime.date(2025,8,9),datetime.date(2025,8,10),datetime.date(2025,8,11)]
[datetime.date(2025,8,12),datetime.date(2025,8,13),datetime.date(2025,8,14),datetime.date(2025,8,15),datetime.date(2025,8,16),datetime.date(2025,8,17),datetime.date(2025,8,18)]
[datetime.date(2025,8,19),datetime.date(2025,8,20),datetime.date(2025,8,21),datetime.date(2025,8,22),datetime.date(2025,8,23),datetime.date(2025,8,24),datetime.date(2025,8,25)]
[datetime.date(2025,8,26),datetime.date(2025,8,27),datetime.date(2025,8,28),datetime.date(2025,8,29),datetime.date(2025,8,30),datetime.date(2025,8,31),datetime.date(2025,9,1)]
可以看出,打印出來的第一個(gè)值為第一周的日期列表,其中還包含了2025-07-29、2025-07-30、2025-07-31三天
monthdayscalendar(year,month):返回一個(gè)月中天數(shù)列表(不是當(dāng)前月份的天數(shù)為0),按周劃分,為一個(gè)二維數(shù)組。包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
fromcalendarimportCalendar
c=Calendar(firstweekday=6)
foriteminc.monthdayscalendar(2025,8):
print(item)
###############打印結(jié)果如下###############
[0,0,0,1,2,3,4]
[5,6,7,8,9,10,11]
[12,13,14,15,16,17,18]
[19,20,21,22,23,24,25]
[26,27,28,29,30,31,0]
monthdays2calendar(year,month):返回一個(gè)月中天數(shù)與星期的列表(不是當(dāng)前月份的天數(shù)為0),按周劃分,為一個(gè)二維數(shù)組。包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
fromcalendarimportCalendar
c=Calendar(firstweekday=6)
foriteminc.monthdays2calendar(2025,8):
print(item)
###############打印結(jié)果如下###############
[(0,6),(0,0),(0,1),(1,2),(2,3),(3,4),(4,5)]
[(5,6),(6,0),(7,1),(8,2),(9,3),(10,4),(11,5)]
[(12,6),(13,0),(14,1),(15,2),(16,3),(17,4),(18,5)]
[(19,6),(20,0),(21,1),(22,2),(23,3),(24,4),(25,5)]
[(26,6),(27,0),(28,1),(29,2),(30,3),(31,4),(0,5)]
yeardatescalendar(year,width=3):返回一年中所有的日期,為一個(gè)4維數(shù)組。width表示將一年中12個(gè)月份進(jìn)行劃分,每width個(gè)月為一份,每一份包含各個(gè)月份,每個(gè)月份包含周,每周包含日期信息。包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
fromcalendarimportCalendar
c=Calendar(firstweekday=6)
foriteminc.yeardatescalendar(2025,3):
print(item)
###############打印結(jié)果如下###############
[[[datetime.date(2017,12,31),datetime.date(2025,1,1),datetime.date(2025,1,2),...]]]
[[[datetime.date(2025,4,1),datetime.date(2025,4,2),datetime.date(2025,4,3),...]]]
[[[datetime.date(2025,7,1),datetime.date(2025,7,2),datetime.date(2025,7,3),...]]]
[[[datetime.date(2025,9,30),datetime.date(2025,10,1),datetime.date(2025,10,2),...]]]
yeardayscalendar(year,width=3):返回一年中每個(gè)月的天數(shù),為一個(gè)4維數(shù)組。width表示將一年中12個(gè)月份進(jìn)行劃分,每width個(gè)月為一份;每一份包含各個(gè)月份,每個(gè)月份包含周,每周包含天數(shù)信息(不是當(dāng)前月份的天數(shù)為0)。包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
fromcalendarimportCalendar
c=Calendar(firstweekday=6)
foriteminc.yeardayscalendar(2025,3):
print(item)
###############打印結(jié)果如下###############
[[[0,1,2,3,4,5,6],[7,8,9,10,11,12,13],[14,15,16,17,18,19,20],...]]]
[[[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21],...]]]
[[[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21],...]]]
[[[0,1,2,3,4,5,6],[7,8,9,10,11,12,13],[14,15,16,17,18,19,20],...]]]
yeardays2calendar(year,width=3):返回一年中農(nóng)每個(gè)月的天數(shù)與星期的元組,為一個(gè)4維的元組列表。width表示將一年中12個(gè)月份進(jìn)行劃分,每width個(gè)月為一份;每一份包含各個(gè)月份,每個(gè)月份包含周,每周包含天數(shù)與星期的元組信息(不是當(dāng)前月份的天數(shù)為0)。包括月份開始那周的所有日期和月份結(jié)束那周的所有日期
fromcalendarimportCalendar
c=Calendar(firstweekday=6)
foriteminc.yeardays2calendar(2025,3):
print(item)
###############打印結(jié)果如下###############
[[[(0,6),(1,0),(2,1),(3,2),(4,3),(5,4),(6,5)],[(7,6),(8,0),...]]]
[[[(1,6),(2,0),(3,1),(4,2),(5,3),(6,4),(7,5)],[(8,6),(9,0),...]]]
[[[(1,6),(2,0),(3,1),(4,2),(5,3),(6,4),(7,5)],[(8,6),(9,0),...]]]
[[[(0,6),(1,0),(2,1),(3,2),(4,3),(5,4),(6,5)],[(7,6),(8,0),...]]]
calendar.TextCalendar(firstweekday=0)
Calendar子類,firstweekday為一個(gè)整數(shù),指定一周的第一天,0是星期一(默認(rèn)),6為星期日
formatmonth(theyear,themonth,w=0,l=0):以多行字符串形式返回一個(gè)月的日歷。theyear指定年,themonth指定月,w每個(gè)單元格寬度,默認(rèn)0,內(nèi)部已做處理,最小寬度為2,l每列換l行,默認(rèn)為0,內(nèi)部已做處理,至少換行1行
fromcalendarimportTextCalendar
c=TextCalendar(firstweekday=6)
print(c.formatmonth(2025,8))
###############打印結(jié)果如下###############
August2025
SuMoTuWeThFrSa
1234
567891011
12131415161718
19202122232425
262728293031
prmonth(theyear,themonth,w=0,l=0):打印formatmonth(theyear,themonth,w=0,l=0)的結(jié)果,無返回值
fromcalendarimportTextCalenadr
c=TextCalendar(firstweekday=6)
c.prmonth(2025,8)
###############打印結(jié)果如下###############
August2025
SuMoTuWeThFrSa
1234
567891011
12131415161718
19202122232425
262728293031
因?yàn)闊o返回值,所以返回的結(jié)果為None
formatyear(theyear,w=2,l=1,c=6,m=3):以多行字符串形式返回一年的日歷,w每個(gè)單元格寬度,默認(rèn)0,內(nèi)部已做處理,最小寬度為2,l每列換l行,默認(rèn)為0,內(nèi)部已做處理,至少換行1行,c月與月之間的間隔寬度,默認(rèn)為6,內(nèi)部已做處理,最小寬度為2,m表示將12個(gè)月分為m列
fromcalendarimportTextCalendar
c=TextCalendar(firstweekday=6)
print(c.format(2025,m=4))
###############打印結(jié)果如下###############
2025
JanuaryFebruaryMarchApril
SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa
1234561231231234567
789101112134567891045678910891011121314
14151617181920111213141516171112131415161715161718192021
21222324252627181920212223241819202122232422232425262728
2829303125262728252627282930312930
MayJuneJulyAugust
SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa
123451212345671234
67891011123456789891011121314567891011
13141516171819101112131415161516171819202112131415161718
20212223242526171819202122232223242526272819202122232425
272829303124252627282930293031262728293031
SeptemberOctoberNovemberDecember
SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa
11234561231
234567878910111213456789102345678
910111213141514151617181920111213141516179101112131415
16171819202122212223242526271819202122
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年注冊建筑師考試題及答案詳解
- 2025年跨文化交際能力考試題及答案
- 古建筑修復(fù)工程合同終止及文化遺產(chǎn)保護(hù)協(xié)議
- 商業(yè)秘密保護(hù)與責(zé)任合同:知識(shí)產(chǎn)權(quán)保障
- 影視作品替身演員演出合同
- 青少年音樂制作與藝術(shù)實(shí)踐合同
- 網(wǎng)絡(luò)安全漏洞掃描數(shù)據(jù)分析系統(tǒng)定制租賃服務(wù)合同
- 專利權(quán)質(zhì)押擔(dān)保融資合同書
- 航空影像制作私人直升機(jī)航拍素材版權(quán)合作協(xié)議
- 鄉(xiāng)村花園使用權(quán)及鄉(xiāng)村旅游項(xiàng)目合作協(xié)議
- 黃岡市鄉(xiāng)村文旅融合發(fā)展的問題及對(duì)策研究
- 廣州市2025屆高考二模試卷(含答案)
- 2025屆浙江省縣域教研聯(lián)盟高三模擬物理試卷及答案
- 法律文化-形考作業(yè)4-國開(ZJ)-參考資料
- 2025屆新高考物理沖刺復(fù)習(xí):用動(dòng)量定理解決帶電粒子在磁場中的運(yùn)動(dòng)問題
- 一二三級(jí)配電箱原理圖、施工臨電平面圖
- 潔凈車間生產(chǎn)管理制度
- DB23∕T 1019-2020 黑龍江省建筑工程資料管理標(biāo)準(zhǔn)
- 杭州市市區(qū)歷年公房租金調(diào)整一覽表
- 熱力小室方案計(jì)劃全
- 麗聲北極星分級(jí)繪本第一級(jí)上My Noisy Schoolbag課件
評(píng)論
0/150
提交評(píng)論