利用Python如何輸出某一年的日曆?

2021-09-29 16:31:43 字數 2507 閱讀 6774

利用自定而下的思想,將問題進行一步一步的分解,最後可解決問題

def

getyear()

:print

("this program prints the calendar of a given year."

) year =

int(

input

("please enter a year(after 1900: )"))

return year

deffirstday

(year)

:"""

返回第一天是哪一天 0-> 星期1

"""k = leapyears(year)

n =(year-

1900)*

365+k

return

(n+1)%

7def

leapyears

(year)

:"""

判斷從1900 到year中間有多少個閏年

"""count =

0for y in

range

(1900

, year)

:if y%4==

0and

(y%400==0

or y%

100!=0)

: count +=

1return count

defprintcalendar

(year, w)

:print()

print

("**********=="

+str

(year)

+"**********=="

) first = w

for month in

range(12

):heading(month)

first = onemonth(year, month, first)

defheading

(month)

:"""

輸出提示,表示這是第幾月

"""months =

["jan"

,"feb"

,"mar"

,"apr"

,"may"

,"jun"

,"jul"

,"aug"

,"sept"

,"oct"

,"nov"

,"dec"

]print

(" %s "

%(months[month]))

print

(" mon tue wed thu fri sat sun"

)def

onemonth

(year, month, first)

:"""

"""d = days(year, month)

frame = layout(first,d)

printmonth(frame)

return

(first+d)%7

defdays

(y,m)

:"""

返回第幾個月有多少天

"""month_days =[31

,28,31

,30,31

,30,31

,31,30

,31,30

,31] d = month_days[m]

if(m==1)

and(y%4==

0and

(y%400==0

or y%

100!=0)

):# 閏年的2月

d +=

1return d

deflayout

(first, d)

: frame =42*

[""]# 表示的是整個的框架6 * 7

if first ==0:

first =

7 j = first-

1for i in

range(1

, d+1)

: frame[j]

=i j = j+

1return frame

defprintmonth

(frame)

:for i in

range(42

):print

("%4s"

%(frame[i]

), end='')

if(i+1)

%7==0

:print()

defmain()

:# year = getyear()

w = firstday(

2012

) printcalendar(

2012

, w)

main(

)

判定某一年是否為閏年

01.02.程式的版權和版本宣告部分 05.檔名稱 07.完成日期 2017年6月2日 08.版本號 v1.0 09.輸入描述 用變數leap代表是否閏年的訊息,若閏年,令leap 1,不是閏年,令leap 0 最後判斷leap是否為1 真 若是則輸出 閏年 10.問題描述 判斷某一年是否為閏年 1...

mysql 查詢某一年 某一月 某一天的資料

查詢某一年 某一月 某一天的資料 可組合 select fromymt where date format indate,y m d 2016 10 10 indate為表中列名 mysql查詢一天,查詢一周,查詢乙個月內的資料 查詢一天 select from ymt where date ind...

mysql 查詢今天 某一天 某一月 某一年的資料

今天 select from 表名 where to days 時間欄位名 to days now 昨天 包括昨天和今天的資料 select from 表名 where to days now to days 時間欄位名 1昨天 只包括昨天 select from 表名 where to days ...