#include<>#include<>#include<>#defineLength80//长为80#defineWidth25//宽为25#defineESC27#defineMax_Year9999#defineMin_Year1900#defineMax_Month12#defineMin_Month1char*Week_Name[7]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};intSum[12]={31,28,31,30,31,30,31,31,30,31,30,31};intPre_Year=0,Pre_Month=0,Pre_Day=0;//初始化当前日期intOutputCalendar(intyear,intmonth);//输出万年历intQueryDate(int*year,int*month);//查询日期intLeap_Year(intyear);//判断闰年TRUEorFALSE//计算某一天星期几intWeek_Day(unsignedintyear,unsignedintmonth,unsignedintday);intGetDate();//得到现在日期intmain(){//初始化Cureses包initscr();//允许键盘输入字符keypad(stdscr,TRUE);//判断是否支持彩色if(has_colors()){start_color();//初始化颜色配对表init_pair(0,COLOR_BLACK,COLOR_BLACK);init_pair(1,COLOR_GREEN,COLOR_BLACK);init_pair(2,COLOR_RED,COLOR_BLACK);init_pair(3,COLOR_CYAN,COLOR_BLACK);init_pair(4,COLOR_WHITE,COLOR_BLACK);init_pair(5,COLOR_MAGENTA,COLOR_BLACK);init_pair(6,COLOR_BLUE,COLOR_BLACK);init_pair(7,COLOR_YELLOW,COLOR_BLACK);}intKEY=0;intYear_Next=0,Month_Next=0;GetDate();Year_Next=Pre_Year;Month_Next=Pre_Month;OutputCalendar(Pre_Year,Pre_Month);curs_set(FALSE);//取消光标while(KEY!=ESC){KEY=getch();switch(KEY){caseKEY_UP:if(Year_Next<Max_Year){Year_Next++;break;}elsebreak;caseKEY_DOWN:if(Year_Next>Min_Year){Year_Next--;break;}elsebreak;caseKEY_LEFT:if(Month_Next>Min_Month){Month_Next--;break;}elseif(Month_Next<=Min_Month&&Year_Next>Min_Year){Year_Next-=1;Month_Next=12;break;}elseif(Year_Next==Min_Year){Month_Next=1;break;}caseKEY_RIGHT:if(Month_Next<Max_Month){Month_Next++;break;}elseif(Month_Next>=Max_Month&&Year_Next<Max_Year){Year_Next+=1;Month_Next=1;break;}elseif(Year_Next==Max_Year){Month_Next=12;break;}case'f':QueryDate(&Year_Next,&Month_Next);curs_set(FALSE);break;case'F':QueryDate(&Year_Next,&Month_Next);curs_set(FALSE);break;default:break;}OutputCalendar(Year_Next,Month_Next);}endwin();return0;}//运用蔡勒公式计算某天星期几intWeek_Day(unsignedintyear,unsignedintmonth,unsignedintday){intweek_t=0;unsignedinty=0,c=0,m=0,d=0;if(month==1||month==2){c=(year-1)/100
万年历代码 来自淘豆网m.daumloan.com转载请标明出处.