C语言版的日历

来源:互联网 发布:博奥软件下载 编辑:程序博客网 时间:2024/04/29 14:24

效果展示



代码

#include<stdio.h>#include<windows.h>#include<conio.h>#define   KEYNUMUp                   0x48#define   KEYNUMDown                 0x50  #define   KEYNUMLeft                 0x4b   #define   KEYNUMRight                0x4d#define   KEYNUMPageUp               0x49 #define   KEYNUMPageDown             0x51int MonthOfYear[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};void PrintCalender(int iyear,int imonth);int CheckYear(int y);int main(){    int year,month;    int k,i;    char ch='y';    printf("请输入年份(0000-9999):\n");    scanf("%d",&year);    printf("请输入月份(1-12):\n");    scanf("%d",&month);    PrintCalender(year,month);    for(i=0;ch=='y';i++)    {        printf("%c",24);        printf(":上一年\n");        printf("%c",25);        printf(":下一年\n");        printf("%c",27);        printf(":上一月\n");        printf("%c",26);        printf(":下一月\n");        getch();        k=getch();        switch(k)        {        case KEYNUMUp:            {                system("cls");                year--;                PrintCalender(year,month);                printf("是否继续更改?(y/n)");                getchar();                scanf("%c",&ch);                break;            }        case KEYNUMDown:            {                system("cls");                year++;                PrintCalender(year,month);                printf("是否继续更改?(y/n)");                getchar();                scanf("%c",&ch);                break;            }        case KEYNUMLeft:            {                system("cls");                month--;                PrintCalender(year,month);                printf("是否继续更改?(y/n)");                getchar();                scanf("%c",&ch);                break;            }        case KEYNUMRight:            {                system("cls");                month++;                PrintCalender(year,month);                printf("是否继续更改?(y/n)");                getchar();                scanf("%c",&ch);                break;            }        }    }}void PrintCalender(int iyear,int imonth){    int sumday=0,w,i,nowday=1,n;    char wday[7][4]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};    for(i=0;i<imonth-1;i++)        sumday+=MonthOfYear[CheckYear(iyear)][i];    sumday++;    sumday+=(iyear-1+(iyear-1)/4-(iyear-1)/100+(iyear-1)/400);    w=sumday%7;    printf("%d",w);    printf("                          %d%d 月         \n",iyear,imonth);    //system("pause");    printf("%15c",' ');    for(i=0;i<7;i++)        printf("%5s",wday[i]);    printf("\n");    switch(w)    {    case 0:printf("%20d",nowday);break;    case 1:printf("%25d",nowday);break;    case 2:printf("%30d",nowday);break;    case 3:printf("%35d",nowday);break;    case 4:printf("%40d",nowday);break;    case 5:printf("%45d",nowday);break;    case 6:printf("%50d",nowday);break;    }    if(w==6)        printf("\n%15c",' ');    n=MonthOfYear[CheckYear(iyear)][imonth-1];    for(i=1;i<=n;i++)    {        sumday+=1;        w=sumday%7;        //printf("%d",w);        nowday++;        if(nowday>n)            break;        if(w==6)        {            printf("%5d",nowday);            printf("\n");            printf("%15c",' ');        }        else            printf("%5d",nowday);    }    printf("\n");}int CheckYear(int y){    if(y%400==0||y%4==0&&y%100!=0)        return 1;    else return 0;}
0 0
原创粉丝点击