首页 » 技术分享 » 今天星期几

今天星期几

 

题目描述

小明是个马大哈,经常忘了,今天是星期几,于是他会去找三金问今天是星期几。三金也忘记了,但是三金那里有个记录,为N天前是YYYY年MM月DD日星期W,问你今天的日期和星期几。

输入

第一行: T        表示以下有T组测试数据             ( 1≤ T ≤8 ) 
对每组数据, 占一行: 
YYYYMMDD  W  N     (20000101≤YYYYMMDD≤20180527  1≤W≤ 7  1 ≤N≤ 8000 )

输出

对每组测试数据,输出占一行,格式为:YYYYMMDD  W   ( 中间一个空格 )

样例输入

2
20180527  7  1
20180214  3  289

样例输出

20180528 1
20181130 5

代码:

 #include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string.h>
using namespace std;
int ww(int y)//判断闰年
{
    if(y%400==0||(y%100!=0&&y%4==0))
        return 1;
    else
        return 0;
}
int main()
{
    int t,i,j,m,n,y,l,k,a;
    cin>>t;
    while(t--)
    {
        scanf("%d %d %d",&a,&m,&n);
        m=m+n%7;
        m=m%7;
        y=a/10000;
        a=a%10000;
        l=a/100;
        k=a%100;//年月日换算
        n=n+k;//将这一月日期清零,加到天数里计算
        int i=l;
        while(n>0)//天数递减
        {
            l=i;
            k=n;
            if(i==1||i==3||i==5||i==7||i==8||i==10)
            {
                n=n-31;
            }
            else if(i==2)
            {
                if(ww(y))
                {
                    n=n-29;
                }
                else
                {
                    n=n-28;
                }
            }
            else
            {
                n=n-30;
            }
            i++;
            if(i==12&&n>31)//最后一月判断过后要年数加一
            {
                y++;
                i=1;
                n=n-31;
            }
        }
        printf("%d%0.2d%0.2d %d\n",y,l,k,m);//输出符合格式
    }
    return 0;
}

转载自原文链接, 如需删除请联系管理员。

原文链接:今天星期几,转载请注明来源!

0