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


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

//输入日期 能知道是星期几。
#include<stdio.h>
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(" ");
    printf("请出入月份(1~12):");    scanf("%d",&y1);    printf(" ");
    printf("请出入号数搜昌(1~31):");    scanf("%d",&r1);    printf(" ");
    s1 = run(n1,y1,r1);
    s2 = js(n1,0);
    switch((s1+s2)%7)
    {
    case 0:printf("星期6 ");break;
    case 1:printf("星期7 ");break;
    case 2:printf("星期1 ");break;
    case 3:printf("星期2 ");break;
    case 4:printf("星期3 ");break;
    case 5:printf("星期4 ");break;
    case 6:printf("星期5 ");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<y-1;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;
}

你好,显示格式有要求吗