C語言源代碼——計算任何一天是星期幾


代碼寫的不嚴謹。

網上也有很多計算任何一天是星期幾的C語言源代碼,不過,有些代碼含有一點點小錯誤。像閏年的分辨啊,或者是每個月的天數,再或者星期的計算公式,都是比較細微的環節,出一點錯誤都有可能導致結果不正確。這一點,我都進行過驗證。下面我選出的這組代碼,結構清晰,語法明確。希望能給各位C的愛好者或者要考計算機二級的同學們一點點幫助!當然,有錯誤的話,也請各位指出!

代碼如下:

 1 #include <stdio.h> 
 2 int main() 
 3 { 
 4 int day,mn,yr,i,days=0,s,k; 
 5 int mont[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 
 6 char wek[][9]={ {'S','u','n','d','a','y'}, 
 7 {'M','o','n','d','a','y'}, 
 8 {'T','u','e','s','d','a','y'}, 
 9 {'W','e','d','n','s','d','a','y'}, 
10 {'T','h','u','r','s','d','a','y'}, 
11 {'F','r','i','d','a','y'}, 
12 {'S','a','t','u','r','d','a','y'} 
13       }; 
14 printf("Inpute the date (year-month-day):"); 
15 scanf("%d-%d-%d",&yr,&mn,&day); 
16 if (yr%4==0||yr%100==0||yr%400==0) 
17 mont[2]=29; 
18 else 
19 mont[2]=28; 
20 for (i=0;i<mn;i++) 
21 days+=mont[i]; 
22 days+=day; 
23 s=yr-1+(int)((yr-1)/4)-(int)((yr-1)/100)+(int)((yr-1)/400)+days; 
24 k=s%7; 
25 printf("%d-%d-%d is %s.",yr,mn,day,wek[k]); 
26    return 0; 
27 } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM