[C]判斷星期幾

有人問,就隨便寫了一個XD

在看程式碼之前,先看一下維基閏年的定義︰
  • 逢4的倍數閏。
  • 逢100的倍數不閏。
  • 逢400的倍數閏。
  • 逢4000的倍數不閏。
嗯,以下是程式碼

44.
#include <stdio.h>
#include <conio.h>

main(){
int year,month,day,output,eax; //年、月、日、輸出、暫存
printf("輸入 年 月 日\n");
scanf("%d%d%d",&year,&month,&day);
eax=year-1; //以下將兩行year-1內有多少個閏年算出來
eax=eax/4-eax/100+eax/400;
output=eax*366+(year-eax-1)*365; //算出year-1內有幾天
if(!(year%4) && year%100 || !(year%400) && month>2) //判斷year(今年)是不是閏年,且已經過了二月,就把輸出天數+1
output++;
for(eax=month-1;eax>0;eax--){ //把今年已經過的月內天數加上
switch(eax){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
output=output+31; break;
case 2:
output=output+28; break;
      default:
output=output+30; break;
}
}
output=output+day; //這個月的第幾天加上
eax=output%7; //取除以7的餘數
printf("%d%d%d日是星期",year,month,day); //以下輸出
switch(eax){
case 1:
printf(""); break;
case 2:
printf(""); break;
case 3:
printf(""); break;
case 4:
printf(""); break;
case 5:
printf(""); break;
case 6:
printf(""); break;
case 0:
printf("");
}
getch(); //暫停
return;
}

檔案下載︰http://www.multiupload.com/OIUBU5RM42

沒有留言:

張貼留言