《万年历的c语言实现源程序.docx》由会员分享,可在线阅读,更多相关《万年历的c语言实现源程序.docx(6页珍藏版)》请在三一文库上搜索。
1、精品文档万年历的C语言编程实现源程序:#include#includeint Isleapyear(int y)/* 判断是否是闰年*/if(y%4=0&y%100!=0)|(y%400=0)return 1;elsereturn 0;int Getdaysofmonth(int y,int m)/* 确定某个月的天数*/int months13=0,31,28,31,30,31,30,31,31,30,31,30,31;if(Isleapyear(y)/* 如果是闰年则 2 月份的天数改变为 29*/months2=29;return monthsm;int Gettotaldays(int
2、 y,int m)/* 计算从 1901 年 1 月开始到给定年月的天数 */intmonths13=0,31,28,31,30,31,30,31,31,30,31,30,31;int days=0;int i,j;if(Isleapyear(y)months2=29;for(i=1901;iy;i+)/* 从 1901 年 1 月开始计算, 累加 y 年之前的天数 */if(Isleapyear(i)days+=366;elsedays+=365;for(j=1;jm;j+)/* 累加m月之后的天数*/days+=monthsj;return days;int Getfirstdayinta
3、ble(int y,int m)/*计算给定年月的第一天在日历表中的位置*/int d;d=Gettotaldays(y,m);d=d+3;/*1901 年 1 月 1 日是星期二,在日历中星期二是第三个位置*/d=d%7;return d;void Showdate(int y,int m)/* 显示日历 */int first;int d;int i,k;first=Getfirstdayintable(y,m);/* 得到第一天在日历中的第一个位置 */d=Getdaysofmonth(y,m);/* 得到这个月的天数*/k=0;printf(n);printf( SUN MON TUE WEN THU FRI STAn);for(i=1;ifirst;i+)/* 打印第一天之前的空格 */printf( );k+;/*k 用于确定日历中是否回车*/for(i=1;iDocumentswranni nli.exe欢迎您的下载,资料仅供套考!致力为企业和个人提供合同协议, 策划案计划书,学习资料等等打造全网一站式需求