最近進行python基礎培訓,課下作業製作萬年曆,之前沒做過,感覺裡面還是有很多需要學的。所謂萬年曆,就是咱們電腦或者手機的日期會記錄每個月每天對應星期幾。用python來製作萬年曆,就是從鍵盤輸入年份和月份,然後輸出對應的日曆表。在製作過程中有如下問題需要思考:
#判斷平年和閏年
def leap_year(year):
if(year%4==0 and year%100==0) or (year%400==0):
return true
else:
return false
下面需要計算每個月的天數 ,其中需要注意2月份要判斷平年和閏年,呼叫leap_year()函式即可。
#計算每個月的天數
def monthdays(year,month):
if month==2:
if leap_year(year):
days=29
else:
days=28
elif month in[4,6,9,11]:
days=30
else:
days=31
return days
接下來我們計算輸入年份year和月份month代表的日期,距離2023年1月1日的天數,如前面所說需要分成兩部分,
#計算總天數
def totaldays(year,month):
yearday=0
for i in range(1990,year):#計算輸入年份之前的
if leap_year(i):
yearday+=366
else:
yearday+=365
for i in range(1,month):#注意不能包括該月份
yearday+=monthdays(year,i)
return yearday
完成現在準備工作之後,就進行顯示函式,利用input()函式從控制台輸入,列印過程需要注意
#顯示函式
year=int(input("請輸入年"))
month=int(input("請輸入月"))
week=(totaldays(year,month))%7 #計算該月第一天是週幾
print('日\t一\t二\t三\t四\t五\t六\t')
for i in range(0,week): #前面列印week個空格
print("\t",end="")
for i in range(1,monthdays(year,month)+1): #c從week+1的位置開始列印數字
if (totaldays(year,month)+i)%7==0: #天數為7的倍數時,記住要換行
print(i,end="\n")
else:
print(i,end="\t")
執行之後,結果如下:
不過我還是沒弄懂,有些程式是求出總天數之後加1,然後去模7,但是我這個程式出來結果是對的,一直想不明白,如果有知道的,麻煩指點一下,對了,如果print出來的是一二三四五六日,這種程式需要稍微改動一下,這裡就不說了,大家可以自己思考一下。
PHP製作萬年曆
預覽圖 當前時間為2018年9月13日 首先要了解php對日期時間的處理 1.主要的三個函式 2.首先先寫個html標籤,再在body標籤裡面插入php header content type text html charset utf 8 檢測使用者是否提交資料 if isset post yea...
PHP製作萬年曆
使用php實現萬年曆功能的要點 得到當前要處理的月份總共有多少天 days 得到當前要處理的月份的一號是星期幾 dayofweek days的作用 知道要處理的月份共有多少天,就可以通過迴圈輸出天數了 dayofweek的作用 只有知道每個月的1號是星期幾,才能知道在輸出天數之前需要輸出多少空格 空...
C語言製作萬年曆
includeint rn int a 用於判斷閏年,閏年返回366天,非閏年返回365天 void xs int a,int b 顯示日曆函式 int main int rn int a if a 4 0 a 100 0 else return 365 void xs int a,int b 非閏...