C语言实现万年历
C语言实现的万年历显示,按下上下左右按键来更换日期和年份,供大家参考,具体内容如下
#include#include #include #include typedefstructtoday { intday; intmonth; intyear; }today; intday_cankao[2][13]={ {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31} }; char*week[]= { "Sun","Mon","Tue","Wen","Thu","Fir","Sat" }; structtm*todayuse;//structtm定义c语言中time的结构体 todaytoday_current; intgetweekday(todaytoday_usenow) { //w=y+[y/4]+[c/4]–2c+[13*(m+1)/5]+d–1 //其中,c是年份的前两位,y是年份的后两位,m是月份,d是日期,这里需要注意的是,如果是1月和2月,c和y需要按照上一年来取值。 intw=0; intyear=today_usenow.year; intmonth=today_usenow.month; if(today_usenow.month==1||today_usenow.month==2) { month+=12; year--; } inty=year%100; intc=year/100; intm=month; w=y+y/4+c/4-2*c+26*(m+1)/10+today_usenow.day-1; while(w<0) { w+=7; } return(w%7); } intis_leap(intyear) { if((year%4==0&&year%100!=0)||(year%400==0)) { return1; } else return0; } intgetmonthdays(intyear,intmonth) { returnday_cankao[is_leap(year)][month]; } voidprint_calendar(todaytoday_usenow) { printf("---------------------------\n"); printf("SunMonTueWenThuFirSat\n"); intfirstday=0; todaytoday_usehere=today_usenow; today_usehere.day=1; intday=getweekday(today_usehere);//日期前 //intdaysuseafter intdays=getmonthdays(today_usenow.year,today_usenow.month);//月总数 //0123456//6 intdaysbefore=0; if((today_usenow.month-1)==0) { //现在为1月,去年的十二月份 daysbefore=getmonthdays(today_usenow.year-1,12); //printf("%dis",daysbefore); } else { daysbefore=getmonthdays(today_usenow.year,today_usenow.month-1); } intdaysbefoeit=daysbefore-day+1; printf(""); intcount=1; if(day==0) { daysbefoeit-=7; for(inti=0;i tm_year); printf("Month:%d\n",1+p->tm_mon); printf("Day:%d\n",p->tm_mday); printf("Hour:%d\n",p->tm_hour); printf("Minute:%d\n",p->tm_min); printf("Second:%d\n",p->tm_sec); printf("Weekday:%d\n",p->tm_wday); printf("Days:%d\n",p->tm_yday); printf("Isdst:%d\n",p->tm_isdst); */ //printf("%d",day_cankao[0][12]); today_current.year=1900+p->tm_year; today_current.month=1+p->tm_mon; today_current.day=p->tm_mday; todayuse=today_current; intc1,c2; printf("%d年%d月%d日\n",today_current.year,today_current.month,today_current.day); print_calendar(today_current); while(1) { c1=getch(); if(c1==27) { printf("您已经退出系统"); break; } if(c1==110) { printf("%d年%d月%d日\n",today_current.year,today_current.month,today_current.day); //printf("%d\n",getweekday(today_current)); print_calendar(today_current); use=today_current; continue; } c2=getch(); //printf("%d%d",c1,c2); if(c1==224&&c2==72) { use.month+=1; if(use.month==13) { use.month=1; use.year+=1; } printf("%d年%d月%d日\n",use.year,use.month,use.day); //printf("%d\n",getweekday(today_current)); print_calendar(use); } if(c1==224&&c2==80) { use.month-=1; if(use.month==0) { use.month=12; use.year-=1; } printf("%d年%d月%d日\n",use.year,use.month,use.day); //printf("%d\n",getweekday(today_current)); print_calendar(use); } if(c1==224&&c2==75) { use.year-=1; printf("%d年%d月%d日\n",use.year,use.month,use.day); //printf("%d\n",getweekday(today_current)); print_calendar(use); } if(c1==224&&c2==77) { use.year+=1; printf("%d年%d月%d日\n",use.year,use.month,use.day); //printf("%d\n",getweekday(today_current)); print_calendar(use); } printf("\n"); printf("按上下按钮,进行月份变换\n"); printf("按左右按钮,进行年份变换\n"); printf("按ESC按键,退出系统\n"); printf("按N按钮,查看当前日期\n"); } //上22472 //下22480 //左22475 //右22477 //esc27 //n110 return0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。