struct date
{
int year;
int month;
int day;
};
int days(struct date day)
{
static int day_tab[2][13]=
{{0,31,28,31,30,31,30,31,31,30,31,30,31,}, /* 平均每月的天數 */
{0,31,29,31,30,31,30,31,31,30,31,30,31,},
};
int i,lp;
lp=day.year%4==0&&day.year%100!=0||day.year%400==0;
/* 判定 year 為閏年還是平年, lp=0 為平年,非 0 為閏年 */
/* 判定 year 為閏年還是平年, lp=0 為平年,非 0 為閏年 */
for(i=1;i<day.month;i++) /* 計算本年中自 1 月 1 日起的天數 */
day.day+=day_tab[lp][i];
return day.day;
}
int main()
{
struct date today,term;
int yearday,year,day;
printf("Enter year/month/day:");
scanf("%d%d%d",&today.year,&today.month,&today.day); /* 輸入日期 */
term.month=12; /* 設置變量的初始值:月 */
term.day=31; /* 設置變量的初始值:日 */
for(yearday=0,year=1990;year<today.year;year++)
{
term.year=year;
yearday+=days(term); /* 計算從 1990 年至指定年的前壹年***有多少天 */
}
yearday+=days(today); /* 加上指定年中到指定日期的天數 */
day=yearday%5; /* 求余數 */
if(day>0&&day<4)
printf("he was fishing at that day.\n"); /* 打印結果 */
else
printf("He was sleeping at that day.\n");
}