搜索
您的当前位置:首页日历显示系统

日历显示系统

来源:乌哈旅游
#include #include #include

int calendar[12][6][7];/*月历*/

char* week[]={\"Sunday\char* Monthname[]={\"January\ \"August\int monthday[]={31,28,31,30,31,30,31,31,30,31,30,31}; char* menu[]={/*操作菜单*/ \"**************** 日历显示系统 *******************\\n\\n\

\"1.Input a year number,check whether it's a leap year.\\n\ \"2.Input year,month,day,check the weekday.\\n\

\"3.Input year,month,output the calendar of that month.\\n\ \"4.Input year,output all the month calendar.\\n\ \"0.Exit.\\n\" };

/*判断参数year传递的年份是否是闰年*/ int IsLeapyear(int year) {

if(year%4!=0||year%100==0&&year%400!=0) return 1; else return 0; }

/*输入年月日,判断星期几,利用公式w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1

w是结果星期数,y是年份的后两位,c是年份的前两位,m是月份,3≤m≤14,也就是当 m≤2时,要算到前一年的13月份和14月份,最后要将w对7取模 */

int WeekDay(int year,int month,int day) {

int w,y,c,m,d; c=year/100; if(month<3){ m=12+month; y=year%100-1; } else{

m=month; y=year%100; }

d=day;

w=y+y/4+c/4-2*c+26*(m+1)/10+d-1; return (w%7+7)%7; }

/*输入年份,月份,打印出本月的日历*/

void Monthly(int year,int month) {

int weekday,i,j; if(month==2)

if(IsLeapyear(year)) monthday[1]+=1; weekday=WeekDay(year,month,1); printf(\"%s\\n\

printf(\"Sun. Mon. Tue. Wed. Thu. Fri. Sat.\\n\");

for(i=1,j=weekday;i<=monthday[month-1];i++,j++){ calendar[month-1][j/7][j%7]=i; }

for(i=0;i<6;i++){ for(j=0;j<7;j++) {

if(calendar[month-1][i][j]==0) printf(\"%5c\ else printf(\"%-5d\ }

printf(\"\\n\"); } }

void allMonth(int year) /*输入年份,打印出12个月的月历*/ { int i;

for(i=1;i<=12;i++){ Monthly(year,i);

//getch();/*按任意键继续执行*/ } }

void main(void) {

int year,month,day,i,n,weekday;

memset(&calendar,sizeof(calendar),0); /*初始化月历*/ for(i=0;i<5;i++)

printf(\"%s\ while(1){

printf(\"Please choose the menu:\"); scanf(\"%d\ printf(\"\\n\"); switch(n){ case 1:

printf(\"Please input year:\"); scanf(\"%d\

if(IsLeapyear(year)) printf(\"\\n%d is leap year.\\n\ else printf(\"%d isn't leap year.\\n\

break; case 2:

printf(\"Please input year month day:\"); scanf(\"%d%d%d\ printf(\"\\n\");

weekday=WeekDay(year,month,day);

printf(\"That day is %s\\n\ break; case 3:

printf(\"Please input year month,then it output a calendar of that month:\"); scanf(\"%d%d\ printf(\"\\n\");

Monthly(year,month); break; case 4:

printf(\"Please input year,then it will output the calendar of that year:\"); scanf(\"%d\ printf(\"\\n\"); allMonth(year); break; case 0: return; default:

printf(\"The number you input is invalid.\\n\"); break; } }

getch(); /*按任意键,程序退出*/ }

因篇幅问题不能全部显示,请点此查看更多更全内容

Top