(3.4C)根据年份与天数打印日期

题目:

(3.4C)根据年份与天数打印日期

 样例:

(3.4C)根据年份与天数打印日期

 代码:

#include<stdio.h>
bool isleap(int y){
	return((y%4==0&&y%100!=0)||y%400==0);//闰年返回1,平年返回0 
}
int main(){
    int month[13][2];
	for(int i=1;i<=12;i++){
		for(int j=0;j<2;j++){
			if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
				month[i][j]=31;
			}
			else if(i==2&&j==0){
				month[i][j]=28;//平年二月28天 
			}
			else if(i==2&&j==1){
				month[i][j]=29;
			} 
			else{
				month[i][j]=30;
			}
		}
	}
    int y,d;
    while(scanf("%d%d",&y,&d)!=EOF){
    	if(y>3000||d>366||y<1||d<1){
    		break;
		} 
        int y1=y;
        int m1=1;
        int d1=0;
        while(d--){
            d1++;
            if(d1==month[m1][isleap(y1)]+1){
                m1++;
                d1=1;
            }
        }
//下面这部分千万不要忘记写,年份中有1个0还是2个0以及月份中的0都需要讨论来打印出来
        if(y1<10){
        	printf("000");
        	printf("%d-",y1);
		}
		else if(y1>=10&&y1<100){
			printf("00");
        	printf("%d-",y1);
		}
		else if(y1>=100&&y1<1000){
			printf("0");
        	printf("%d-",y1);
		}
		else{
			printf("%d-",y1);
		}
        if(m1<10){
        	printf("0");
        	printf("%d-",m1);
		}
		else{
			printf("%d-",m1);
		}
		if(d1<10){
        	printf("0");
        	printf("%d\n",d1);
		}
		else{
			printf("%d\n",d1);
		}
    }
    return 0;
}

上一篇:Prometheus 服务发现之Kubernetes node模式(章节三)


下一篇:牛客真题编程——day1