日历

日历是一种测量时间的系统,从几小时到几分钟到几个月和几天,最后到几年和几个世纪。小时,日,月,年和世纪的条款都是压光机系统的时间单位。根据公历,即今日使用的公历,可以被4整除的年份是闰年,但百年不能被400整除。因此,1700年,1800年,1900年和2100年是不是闰年,但1600,2000和2400是闰年。考虑到自2000年1月1日以来已经过去的天数,您的任务是查找星期几和星期几。

输入

输入由每行包含一个正整数的行组成,这是自2000年1月1日以来经过的天数AD最后一行包含一个不应被处理的整数-1。你可以假定结果日期不会在9999年之后。

产量

对于每个测试用例,以“YYYY-MM-DD DayOfWeek”格式输出包含日期和星期几的行,其中“DayOfWeek”必须是“星期日”,“星期一”,“星期二”, “星期三”,“星期四”,“星期五”和“星期六”。

示例输入

1730
1740
1750
1751
-1

示例输出

2004-09-26星期天
2004-10-06星期三
2004-10-16星期六
2004-10-17星期天

/*#include <stdio.h>
int judge(int year)
{
    if((year%4==0&&year%100!=0)||year%400==0) return 1;
    return 0;
}
int main()
{
    char week[7][10]={"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};
    int year[2]={365,366},day,weekday,i,j,month[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};
    for(;;)
    {   scanf("%d",&day);
        if(day==-1)
            break;
        weekday=day%7;
        for(i=2000;i<=9999;i++)
            if(day>=year[judge(i)])
                day-=year[judge(i)];
            else
                break;
        for(j=0;j<=11;j++)
        {
            int t=judge(i);
            if(day>=month[t][j]) day-=month[t][j];
            else break;
        }
        printf("%d-%02d-%02d %s\n",i,j+1,day+1,week[weekday]);
    }
    return 0;
}*/






#include<stdio.h>
int main()
{
    int a,e,t,z,b,i,j,ge=0,d[12]= {31,29,31,30,31,30,31,31,30,31,30,31},g[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
    char f[7][10]= {"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};
    for(;;)
    {
        e=0;
        scanf("%d",&a);
        t=a;
        if(a==-1)
            break;
        if(a<=365)
        {
            for(i=0; i<=11; i++)
            {
                a-=d[i];
                if(a<=0)
                    break;
            }
            a+=d[i];
            e=t%7;
            printf("%d-%02d-%02d ",2000,i+1,a+1);
            printf("%s\n",f[e]);
        }
        else
        {
            for(i=0;; i++)
            {
                if(a>=0)
                {
                    if(((2000+i)%100!=0&&(2000+i)%4==0)||(2000+i)%400==0)
                    {
                        a-=366;
                        z=1;
                    }
                    else
                    {
                        a-=365;
                        z=2;
                    }
                }
                else
                {
                    if(z==1)
                        a+=366;
                    if(z==2)
                        a+=365;
                    break;
                }


            }
            if(((2000+i-1)%100!=0&&(2000+i-1)%4==0)||(2000+i-1)%400==0)
            {
                for(j=0; j<=11; j++)
                {
                    a-=d[j];
                    if(a<=0)
                        break;
                }


            }
            else
                for(j=0; j<=11; j++)
                {
                    a-=g[j];
                    if(a<=0)
                        break;
                }
            a+=d[j];
            e=t%7;
            printf("%d-%02d-%02d ",2000+i-1,j+1,a+1);
            printf("%s\n",f[e]);
        }






    }
}

猜你喜欢

转载自blog.csdn.net/najiuzheyangbaacm/article/details/79900326