求c语言编写万年历,要求输入一个年份,会显示那一个年份的一到十二月,还包括星期几。会的大神求解

2024-12-03 12:52:05
推荐回答(2个)
回答1:

我写过一个程序,输入日期能显示出是星期几,我把代码给你,你先给我采纳,我下午四点帮你写,现在没时间。

//输入日期 能知道是星期几。
#include
int run(int n,int y,int r);//润平年判断与计算函数,结果为,此日期为当年的第几天。
int js(int n,int m);//计算函数,计算n1年与n2年之间整年的天数。
int main()
{
    int n1,y1,r1,s1,s2;
    printf("请出入年份:");            scanf("%d",&n1);    printf("\n");
    printf("请出入月份(1~12):");    scanf("%d",&y1);    printf("\n");
    printf("请出入号数(1~31):");    scanf("%d",&r1);    printf("\n");
    s1 = run(n1,y1,r1);
    s2 = js(n1,0);
    switch((s1+s2)%7)
    {
    case 0:printf("星期6\n");break;
    case 1:printf("星期7\n");break;
    case 2:printf("星期1\n");break;
    case 3:printf("星期2\n");break;
    case 4:printf("星期3\n");break;
    case 5:printf("星期4\n");break;
    case 6:printf("星期5\n");break;
    default:break;
    }
}

int run(int n,int y,int r)
{
    int run=0;
    int sum=0;
    int N[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年数组。
    int i;
    if(n%4==0&&n%100!=0||n%400==0){run=1;}//闰年的条件。
    if(run) N[1]=29;//闰年二月29天。    
    for(i=0;i        sum = sum+N[i];//到y月前,此年经过了多少天。
    }
    sum = sum + r;//总天数。
    return sum;
}
int js(int n,int m)
{
    int i,a=0,sum=0;
    for(i=n-2;i>=m;i--){
        if(i%4==0&&i%100!=0||i%400==0){
            a=366;
        }else a=365;
        sum = sum + a;
    }
    return sum;
}

回答2:

你好,显示格式有要求吗