c语言编程输入任意一个年份和月份输出该月份的公历日历

时间:2022-05-03 11:25:38 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
百度文库 - 让每个人平等地提升自我!





//⑴程序功能描述: 输入任意一个年份和月份,按以下格式输出该月份的公历日历。

// 要求由程序计算出来该月份的1日是星期几,并用循环控制打印.

// 打印样例如下:

// 2012年日历

// ======================================== // 9

// ----------------------------------------

// // 1

// 2 3 4 5 6 7 8 // 9 10 11 12 13 14 15 // 16 17 18 19 20 21 22 // 23 24 25 26 27 28 29 // 30

// ----------------------------------------

//⑵程序版本号: 1.0 创作日期: 2012.5.11

//⑶作者信息描述: 班级:国经贸1105 姓名:陈君君 学号:1111141169

//⑷问题分析描述: 1.判断某一年是否为闰年的条件是:a.年份能否被4整除,但不能被100整除;b.年份能被400整除;

// 2.公元1年到year年共有y-1)年,其中天数为:(y-1)*365+闰年的个数.

//⑸算法设计描述:1.根据year,计算2月份的天数;

// 2.计算year11日到111日中间闰年的个数;

// 3.计算year11日到111日的天数,存入变量d1

// 4.计算yearmonth1日到year11日的天数,存入变量d2

// 5.计算yearmonth1日是星期几,存入变量weekday;

// 6.计算yearmonth月的天数,存入变量d3.

//⑹关键语句注释说明:1.recountyear11日到111日中间闰年的个数;

// 2.d1year11日到111日的天数; 1


百度文库 - 让每个人平等地提升自我!





// 3.d2yearmonth1日到year11日的天数;

// 4.weekdayyearmonth1日是星期几;

// 5.d3yearmonth月的天数.

//⑺调试运行过程中出现的错误及改正方法: recount错写为rcount应写为recount

//⑻输入数据样例:2012 9

// 输出数据样例:

// 2012年日历

// ======================================== // 9

// ----------------------------------------

// // 1

// 2 3 4 5 6 7 8 // 9 10 11 12 13 14 15 // 16 17 18 19 20 21 22 // 23 24 25 26 27 28 29 // 30

// ----------------------------------------

#include void main() {

int y,m,i,d1,d2,d3,w,n=0,recount=0;

int t[]={31,28,31,30,31,30,31,31,30,31,30,31}; //输入year年和month printf("请输入年和月:"); scanf("%d%d",&y,&m);

//根据year,计算2月份的天数

if(y%4==0&&y%100!=0||y%400==0) t[1]=29;

//计算year11日到111日中间闰年的天数 recount=(y-1)/4-(y-1)/100+(y-1)/400;

//计算year11日到111日的天数,存入变量d1 d1=(y-1)*365+recount;

//计算yearmonth1日到year11日的天数,存入变量d2 d2=0; 2


百度文库 - 让每个人平等地提升自我!



for(i=0;i d2+=t[i];

//计算yearmonth1日是星期几,存入变量weekday w=(d1+d2+1)%7;

//计算yearmonth月的天数,存入变量d3 d3=t[m-1]; //输出“表头”

printf("%23d年日历\n",y);

printf("===================================================\n"); printf("%23d\n",m);

printf("---------------------------------------------------\n"); printf("\t\t\t\t\t\t\n"); //输出1日前的空格 printf("\t");

//输出所有日期,7个一行 for(i=1;i<=d3;i++) {

printf("%d\t",i); if((i+w)%7==0) printf("\n"); }

printf("\n--------------------------------------------------\n"); }

3


本文来源:https://www.wddqw.com/doc/85caec489c3143323968011ca300a6c30d22f12b.html