万年县

首页 » 常识 » 常识 » 万年历项目3
TUhjnbcbe - 2024/6/21 23:31:00

第三部分先实现第四步,示例代码如下,

#define_CRT_SECURE_NO_WARNINGS1

#includestdio.h

#defineSTART_YEAR

intmain(){

printf("----------------------欢迎使用简易日历系统-------------------------\n");

intyear,month,monthDays;

//1、输入年份和月份,判断输入年份是否是闰年

do{

printf("请输入年份:");

scanf("%d",year);

rewind(stdin);

}while(yearSTART_YEAR);

do{

printf("请输入月份:");

scanf("%d",month);

rewind(stdin);

}while(month1

month12);

intisLeapYear=0;

if(year%4==0year%!=0

year%==0){

//闰年

isLeapYear=1;

}

printf("isLeapYear=%d\n",isLeapYear);

//计算输入月份的天数

switch(month){

case1:

case3:

case5:

case7:

case8:

case10:

case12:

monthDays=31;

break;

case4:

case6:

case9:

case11:

monthDays=30;

break;

case2:

if(isLeapYear==1){

monthDays=29;

}else{

monthDays=28;

}

break;

}

printf("monthDays=%d\n",monthDays);

/*

3、计算该月的第一天是星期几

提示:

(1)循环计算从年开始到输入年份的年份总天数;

(2)需要判断每一年是闰年还是平年,闰年有天,平年有天;

(3)计算输入的月份距离当年1月的天数,并和输入年份之前的天数进行累加;

(4)计算输入月份的第一天是星期几,以年1月1日星期一为基准进行推算:

星期X=(1+总天数)%7;周一到周6,可以使用数字1-6表示,数字0表示周日。

*/

intyearDays=0;

for(inti=0;iyear;i++){

if(i%4==0i%!=0

i%==0){

//闰年

yearDays+=;

}else{

//平年

yearDays+=;

}

}

printf("yearDays=%d\n",yearDays);

intmonthTotalDays=0;

for(inti=0;imonth;i++){

if(month==1

month==3

month==5

month==7

month==8

month==10

month==12){

monthTotalDays+=31;

}elseif(month==4

month==6

month==9

month==11){

monthTotalDays+=30;

}elseif(month==2){

if(isLeapYear==1){

monthTotalDays+=29;

}else{

monthTotalDays+=28;

}

}

}

printf("monthTotalDays=%d\n",monthTotalDays);

intweek=(yearDays+monthTotalDays+1)%7;

printf("week=%d\n",week);

/*

4、按格式输出日历

(1)按格式依次输出:

星期日星期一星期二星期三星期四星期五星期六

(2)用循环输出空格,根据输入月份的1日是星期几来决定空格的数量;

(3)用循环输出当月的所有天数;

*/

printf("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\n");

for(inti=0;iweek;i++){

printf("\t");

}

for(inti=1;imonthDays;i++){

printf("%d\t",i);

//把空格和输出的日期看作一个整体,每输出7个数的时候换行

if((week+i)%7==0){

printf("\n");

}

}

return0;

}

测试结果如下,同样测试年11月,

日历中年11月第一天同样是星期三

真实测试时最好多测试几次,大月,小月,平年和闰年的二月,都需要进行测试。

1
查看完整版本: 万年历项目3