求出任意一年的日曆。(含注釋)

2021-06-25 23:22:27 字數 1460 閱讀 1483

有我自己的注釋與思考,希望可以幫助到有需要的朋友。若有錯誤,麻煩提醒更正。

已知,2023年的一月一號是周一,由此來求出你輸入的任意一年的 12個月 的日曆。

/*注釋1.:平年365天,即52周餘一天,閏年366天,即52周餘二天。即:從x年到2023年,每個平年都在52周基礎上多一天,每個閏年都在52周基礎上多兩天。所以可以推理出,每過乙個平年都相比2023年多出1天,每過乙個個閏年都多出兩天。所以,可以看成:若是過了n年,則至少多出了n天,中間有m個閏年,就再多加m天。*/

/*注釋2.:任意兩個日期間。若是正好隔了k周(k為整數),則兩個日期一定都是禮拜一或都

是禮拜二或都是禮拜

三、四、五、六、日 。所以只要求出x年第一天相比2023年一月一日是周一多了(n+m)天,就可以求出

x年的一月一日是周e。e=(n+m+1)%7.   (因為2023年一月一日是周一,所以要在此基礎上計算,得+1哦~)*/

下面貼上**

#includeint isleep(int year)

int week_of_firstday(int year)

int len_of_month(int year,int month)

int main (void)

{ int year,month,day,weekday,days_of_month,i;

printf("你想求出哪一年的日曆?\n請輸入年份:");

scanf("%d",&year);

printf("\n\n\t\t%d",year);

weekday=week_of_firstday(year); //呼叫 week_of_firstday(),得到返回值付給 weekday,可以求出本年度第一天是週幾 。

for(month=1;month<=12;month++)

{ //迴圈12次,求出每個月的日曆

printf("\n\t\t%d月\n",month);

**可以直接執行。但我只考慮了2023年到2023年之間的,沒有試過2023年之後的是否正確。因為2023年就挺特殊的。2023年和它性質相似。(2096是潤年,2023年不是閏年,2023年是潤年,也即相差了8年才有一閏)

改的話,是在  week_of_firstday() 這個函式中進行修改。加兩個條件判斷條件應當就可以了。

列印一年內任意月份的日曆(C語言)

題目要求 2007年1月1日為星期一,編寫乙個函式,輸出2007年任意月份的日曆 這道題我是個人的做法,有個別地方可能有些繞。includeint main printf n n return 0 int iswhatday int month distance days 7 switch dist...

顯示任意一年的月曆的程式

功能概述 從鍵盤輸入年份和月份,然後從控制台輸出這個月的月曆。然後詢問是否繼續,繼續按1退出按2。源 include stdafx.h include 功能 輸入星期幾如果為0說明是周一前一天也就是週日 如果是8則是週日後一天也就是周一 int weekround int x 只要給它這個月第一天是...

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

利用自定而下的思想,將問題進行一步一步的分解,最後可解決問題 def getyear print this program prints the calendar of a given year.year int input please enter a year after 1900 return...