题解 | #打印日期#

打印日期

https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;

int day1[13]={0,31,28,31,30,31,30,31,31,30,31,30,32};
int day2[13]={0,31,29,31,30,31,30,31,31,30,31,30,32};

int main(){
    int y,n;
    int day[13];
    int num=0;
    int t,z;
    bool m;
    while(scanf("%d%d",&y,&n)!=EOF){
        if((y%4==0&&y%100!=0)||y%400==0)
            memcpy(day,day2,sizeof(day2));
        else
            memcpy(day,day1,sizeof(day1));
        for(int i=0;i<=12;i++){
            num+=day[i];
            if(num>n){
				z=i;
				if(z==0) 
				z=1;
				m=true;
				break;
			}
            if(num==n){z=i;m=false;break;}//刚好满几个月了
        }
        if(m==true)
            if(z==1)t=n;
        else
        t=day[z]-(num-n);
        else t=day[z+1];
        printf("%04d-%02d-%02d\n",y,z,t);
    }
    return 0;
}

全部评论

相关推荐

完美的潜伏者许愿简历...:隐藏信息被你提取出来了,暗示,这就是暗示
点赞 评论 收藏
分享
05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
晗江雪:其实我只是觉得你们导员说的很好笑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务