




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(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類型!另外,請(qǐng)將星期天設(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理三基三嚴(yán)??荚囶}(附答案)
- 中醫(yī)考試題(含參考答案)
- 2025合作伙伴合同終止協(xié)議
- 2025年我愛我家房屋買賣合同樣本
- 農(nóng)業(yè)經(jīng)濟(jì)管理專業(yè)咨詢服務(wù)協(xié)議
- 單位臨時(shí)工雇傭協(xié)議
- 供應(yīng)鏈合作協(xié)議簽訂書
- 財(cái)務(wù)崗筆試題及答案大全
- 浙江國企招聘2025衢州市衢江區(qū)國有企業(yè)春季招聘4人筆試參考題庫附帶答案詳解
- 浙江國企招聘2025臺(tái)州市科創(chuàng)投資集團(tuán)有限公司招聘10人筆試參考題庫附帶答案詳解
- 電力拖動(dòng)自動(dòng)控制系統(tǒng)-第五版 課后習(xí)題答案
- 夏日歷險(xiǎn)夏日歷險(xiǎn)電子書
- 中國傳統(tǒng)故事英文十二生肖二篇
- ETL認(rèn)證的工廠審查
- 中國古代文學(xué)史 馬工程課件(下)05第七編明代文學(xué) 第四章 《水滸傳》
- 威尼斯商人英文劇本(法庭)
- (出讓合同)國有建設(shè)用地使用權(quán)先租后讓合同范本
- 上海中考英語小貓釣魚題型專項(xiàng)練習(xí)
- 教科版科學(xué)五年級(jí)下冊(cè)期末試卷測(cè)試卷(含答案解析)
- 鎂合金片狀、帶狀或條狀,含鎂>50%MSDS危險(xiǎn)化學(xué)品安全技術(shù)說明書
- 預(yù)防校園欺凌主題班會(huì)課件優(yōu)秀
評(píng)論
0/150
提交評(píng)論