C语言实现万年历效果
本文实例为大家分享了C语言实现万年历的具体代码,供大家参考,具体内容如下
#include#include #include #definestr"SUNMONTUEWEDTHUFRISAT" voidmenu();//操作菜单 intleap(intyear);//判断某年是不是闰年 intdays_month(intyear,intmonth);//返回某月的天数 intsomeday(intyear,intmonth,intday);//计算某天是星期几 voidsearch_month(intyear,intmonth);//输出某月的日历 voidsearch_someday(intyear,intmonth,intday);//查询某日是星期几 intmain() { inti,year,month,day; intk1,k2,k3,k4;//用于判断输入的数据和操作是否正确,1代表正确,0代表错误 inta=1; menu(); do { printf("请输入你要进行的操作(1-4):"); scanf_s("%d",&i); getchar(); switch(i) { case1: printf("请输入你要查询的年份:");scanf_s("%d",&year); for(a;a<=12;a++) { printf("\n\n---------*******%d*******------------\n",a); search_month(year,a); } printf("---------*********************------------\n\n\n"); break; case2: printf("请输入您所要查询的相关信息.\n"); printf("年份:");scanf_s("%d",&year); printf("月份:");scanf_s("%d",&month); k1=1; while(k1) { if(month>12||month<1) { printf("你输入的月份有误,请重新输入!\n"); printf("月份:"); scanf_s("%d",&month); if(month<1||month>12)k1=1; } elsek1=0; } search_month(year,month); printf("---------*********************------------\n\n\n"); break; case3: printf("请输入你要查询的日期\n"); printf("年份:");scanf_s("%d",&year); printf("月份:");scanf_s("%d",&month); k2=1; while(k2) { if(month>12||month<1) { printf("你输入的月份有误,请重新输入!\n"); printf("月份:"); scanf_s("%d",&month); if(month<1||month>12)k2=1; } elsek2=0; } //printf("%d年%d月有%d天\n",year,month,days_month(year,month));调试观察输入的日期是否有误,可忽略 printf("日期:");scanf_s("%d",&day); k3=1; while(k3) { if(day>days_month(year,month)||day<1) { printf("你输入的日期有误,请重新输入!\n"); printf("日期:"); scanf_s("%d",&day); if(day>days_month(year,month)||day<1)k3=1; } elsek3=0; } search_someday(year,month,day); printf("---------*********************------------\n\n\n");break; case4:exit(0); printf("---------*********************------------\n\n\n");break; default: k4=1; while(k4) { printf("你输入的数据有误,请重新输入你要进行的操作(1-4):"); scanf_s("%d",&i); if(i<1||i>4)k4=1; elsek4=0; } break; } }while(i>0&&i<5); return0; } voidmenu() { inti=1; printf("\n\n\t\t----------------------------------------\n"); printf("\t\t|--------------------------------------|\n"); printf("\t\t|%d.输出某年的日历|\n",i); printf("\t\t|%d.输出某月的日历|\n",i+1); printf("\t\t|%d.查询某日是星期几|\n",i+2); printf("\t\t|%d.退出系统|\n",i+3); printf("\t\t|--------------------------------------|\n"); printf("\t\t----------------------------------------\n\n"); } intleap(intyear) { if((year%4==0&&year%100!=0)||year%400==0)return1; elsereturn0; } intdays_month(intyear,intmonth) { intdays_month; switch(month) { case1: case3: case5: case7: case8: case10: case12:days_month=31;break; case4: case6: case9: case11:days_month=30;break; case2: if(leap(year)==1) { days_month=29;break; } elsedays_month=28;break; } returndays_month; } intsomeday(intyear,intmonth,intday) { //该函数运用了特殊的计算公式,详细可参见http://blog.163.com/hexin_mars_blog/blog/static/248215040201571351115699/ intsomeday,m,n,i;//someday表示查询的日子是星期几 m=year-year/1000*1000; n=m-m/100*100-1;//用于获得年份的后两位数 intdays=0; for(i=1;i =10) { printf("%d",i); printf("\n"); } } else { if(i<10) { printf("%d",i); } elseif(i>=10) { printf("%d",i); } } } printf("\n------------------------------------------\n"); } voidexit() { exit(0); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。