C语言实现万年历源码
本文实例为大家分享了C语言实现万年历的具体代码,供大家参考,具体内容如下
主函数所在源码
#include#include #include intGetWeek(intyear,intmonth,intday);//求今天是周几。周四就返回4。周日返回0;非法返回-1; intGetDaysInMonth(intyear,intmonth);/*求指定月总共多少天*/ intCreateMonthData(intMonthDay[6][7],intyear,intmonth); voidPrintMonth(intMonthDay[6][7]); intmain() { intMDate[6][7]={{0}}; inty=0; intm=0; intret=0; printf("Plearinputyearmonth:\n"); scanf("%d%d",&y,&m); if(m<=0||m>12) { printf("Yourmonthisinvalid\n"); return1; } ret=CreateMonthData(MDate,y,m); if(ret==0) { PrintMonth(MDate); } return0; } intCreateMonthData(intMonthDay[6][7],intyear,intmonth) { intweek=GetWeek(year,month,1);//返回第几周。 intday=1; inti=0; intj=0; intdaysInMonth=GetDaysInMonth(year,month);//当月天数。 if(week<0) { printf("GetWeekFailed\n"); return-1; } /*给第0行赋值*/ for(j=0;j<7;j++) { if(j daysInMonth) { MonthDay[i][j]=0; } else { MonthDay[i][j]=day; day++; } } } return0; } /*将二维数组中本月日期按如下形式显示:以2017年1月为例*/ /* 日一二三四五六 1234567 891011121314 15161718192021 22232425262728 2930310000 0000000 */ voidPrintMonth(intMonthDay[6][7]) { inti=0; intj=0; printf("日一二三四五六\n"); for(i=0;i<6;i++) { for(j=0;j<7;j++) { printf("%2d",MonthDay[i][j]); } printf("\n"); } }
第二个文件源码
#include#include #include //润年 intLeapDays[12]={31,29,31,30,31,30,31,31,30,31,30,31}; //非闰年 intCommonDays[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //闰年返回1,否则返回0; intIsLeapYear(intyear) { if((year%4==0&&year%100!=0)||(year%400==0)) { return1; } else { return0; } } //输入非法返回0;否则返回1; intIsValidDate(intyear,intmonth,intday) { intret=1; if(month<1||month>12||day<1||year<=0) { return0; } if(IsLeapYear(year)) { if(day>LeapDays[month-1]) { ret=0; } } else { if(day>CommonDays[month-1]) { ret=0; } } returnret; } /*求这一天是当年的第多少天*/ intGetDaysInYear(intyear,intmonth,intday) { intsum=0;//总天数 intisrun=IsLeapYear(year);//闰年返回1;否则返回0; inti=0; intj=0; if(isrun) { for(i=0;i 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。