万年县

首页 » 常识 » 常识 » C语言万年历项目1
TUhjnbcbe - 2024/6/6 18:10:00
北京治疗白癜风那个医院好 https://yyk.39.net/hospital/89ac7_labs.html

项目名称:万年历

项目描述:根据用户输入的年和月,输出相应的日历,如下图所示:

实现步骤:

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

提示:闰年的判断条件--能被4整除并且不能被整除;或者能被整除

2、计算输入月份的天数

提示:可使用switch语句判断每个月的天数,闰年的2月是29天,平年的2月是28天

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

提示:

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

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

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

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

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

4、按格式输出日历

(1)按格式依次输出:

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

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

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

提示:输出时可以考虑使用\t,类似于tab键。

第一部分先实现第一二步,示例代码如下,

#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);

return0;

}

大月测试如下,

小月测试如下,

2月测试如下,

1
查看完整版本: C语言万年历项目1