c語言知道日期 算星期幾

2022-02-25 16:39:27 字數 2245 閱讀 7829

1樓:匿名使用者

這個是用於計算是周幾的公式

參見下鏈第一個公式

不過這個**寫的有點問題,應該是取整的

我個人比較喜歡用蔡勒公式或基姆拉爾森公式

2樓:孔子有云

year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c; 中year-1 而不是-1+,,

(float)(year-1)/100中float是型別轉換,year變數本來是整型,year-1)/100會改變型別,所以加上(float)

最後的printdate()這是函式呼叫,呼叫void printdate()函式,這個函式中有printf輸出。

3樓:郭某人來此

#include "stdio.h"

main()

else

else; break;

case 2: if((y%4==0 && y%100!=0)||(y%400==0)) a=1;

else a=2;

if(a==1&&d>30) ; break;

if(a==2&&d>29) ; break;

case 3: if(d>32) ; break;

case 4: if(d>31) ; break;

case 5: if(d>32) ; break;

case 6: if(d>31) ; break;

case 7: if(d>32) ; break;

case 8: if(d>32) ; break;

case 9: if(d>31) ; break;

case 10: if(d>32) ; break;

case 11: if(d>31) ; break;

case 12: if(d>32) ; break;}}if(m==1||m==2)

if(b==0)

}system("pause"); }}

4樓:嵌入式軟體雜貨鋪

void convertweek(unsigned y,unsigned m,unsigned d)

week=(d+1+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;}

5樓:匿名使用者

樓主沒有學過函式嗎??

結合整則**來看,首先

for(m=1;m

c=c+month_day(m);

c=c+day;

這一句是算本年截止到輸入的這個日期的天數。month_day(m)是呼叫了前面的一個子函式,month_day(m)這個函式看起來是用了陣列來判斷哪個月有幾天,然後通過上面那一句話首先用迴圈從1月到你輸入的那個月份的天數全部加起來,再把輸入的日期的day加到總天數c中就是本年截止到輸入的這個日期的天數。

s=year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c;

return ((int)s%7);

這一句好像是一個算日期的公式,不知道是不是他們說的基姆拉爾森計算公式,最後返回s除以7取餘的值。就是這個日期對應的星期代號了

對於樓主你問的問題.....

(float)(year-1)是int型強轉float型,目的是使結果更加準確,樓主不要斷章取義。。。包括return ((int)s%7); 也是把float型的s強轉成了int型,因為printdate()裡temp變數是int型

至於printdate()...

void printdate()

是這個子函式,並不是輸出,str[temp]對應的是最開始的全域性變數char str[7][10],至於為什麼用二維陣列,按我理解是有7個一維陣列長度,每個一維陣列長度都為10,因為」星期一」它是字串。不過我沒用過這個不是特別清楚,歡迎其他人糾正。

最後我把這則**所有函式解釋一下

isleapyear() 判斷閏年平年

month_day(int m) 計算本年第一天到輸入日期的總天數

daysearch() 計算日期

printdate() 輸出日期

main() 主函式

建議樓主在讀程式的時候可以用debug一步一步追蹤一下就能看懂了。不過我答的是不是有點晚。。。。

是星期幾怎樣算,怎樣算出某天是星期幾

用這個方法計算吧,不知可不可以呀 你不明就追問吧,可我不回答了的呀 1個月30天,到2月2日時是1個月了,每星期是7天,4個星期是4 7 28天了,再用30 28 2,再用星其三 2天,就是星其五了呀。3月2日,又是30天了,再 2天,就星期天了,9日 2日 7日,再 1個星期,就是星期天了呀 從2...

C怎麼獲取系統日期和星期,並把星期轉換為整型

獲取系統日期 datetime.now 星期轉換為整型 int datetime.now.dayofweek 0 6表示週日到週六 class program 年月日 星期 datetime.now.year,datetime.now.month,datetime.now.day,int datet...

怎樣用英語問時間,日期,和星期幾

問時間,日期和星期幾的表達 問時間,what time is it 日期,what s the date today?星期幾,what day is it today?時間點的表達 1 所有的時間都可以用 小時 分鐘 直接讀 6 10 six ten 8 30 eight thirty 2 40 t...