船舶年鉴更新

#包含& ltstdio.h & gt

#包含& ltmath.h & gt

void print month(int m);

空打印头(int m);

int days ofmonth(int m);

int first day(int y);

int年,工作日;

void main()

{

int I;

Printf(“请输入年份:“);

scanf(“% d“,& amp年份);

weekday =第一天(年);

printf(“\ n \ n“);

printf(“% d year \ n“,year);

for(I = 1;我& lt=12;i++)

{

print month(I);

printf(“\ n“);

}

printf(“\ n \ n“);

}

void Print month(int m)//打印月历。

{

int i,天;

打印头(米);

days = days of month(m);

for(I = 1;我& lt=天;i++)

{

printf(“% 5d“,I);

week =(weekday+1)% 7;

if(weekday = = 0)printf(“\ n“);

}

}

Void打印头(int m)//打印月历标题(确定起始位置)

{

int I;

printf(“\ n % d月日123456 \n“,m);

printf(“”);

for(I = 0;我& lt工作日;i++)

printf(“”);

}

int daysoftmonth(int m)//每月的天数

{

开关(m)

{

案例1:

案例三:

案例五:

案例7:

案例8:

案例10:

案例12:返回31;

案例4:

案例6:

案例9:

案例11:返回30;

情况2:如果(((年份% 4 = = 0 & amp& amp年份%100!= 0)| year % 400 = = 0))

返回29;

其他

返回28;

默认值:返回0;

}

}

int first Day(int y)//判断元旦是星期几。

{

双s;

s =下限(年份-1+(年份-1)/4.0-(年份-1)/100.0+(年份-1)/400.0+1);

return(int)s % 7;

}