• vijos--P1211--生日日数(纯模拟)


    P1211生日日数
    未递交

    描述

    CCC老师的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。

    格式

    输入格式

    从文件的第一行分别读入YY,MM,DD其中1949<=YY<=2006,日期绝对合法。

    输出格式

    输出文件只有一行,即CCC老师生日第一万天以后的日期,格式为 “Y-M-D”。

    样例1

    样例输入1[复制]

    1979 4 16

    样例输出1[复制]

    2006-9-1
    
    
    
    
    #include<stdio.h>
    #include<string.h>
    int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    int main()
    {
    	int y,m,d,sum;
    	scanf("%d%d%d",&y,&m,&d);
    	{
    		int k=10000,i,j;
    		int yy;
    		if(y%100!=0&&y%4==0||y%400==0)
    		{
    			sum=366;
    			for(int i=1;i<m;i++)
    			sum-=b[i];
    		}
    		else
    		{
    			sum=365;
    			for(int i=1;i<m;i++)
    			sum-=a[i];
    		}
    		sum-=d;
    		k-=sum;
    		yy=y+1;
    		while(k>=365)
    		{
    			if(yy%100!=0&&yy%4==0||yy%400==0)
    			k-=366;
    			else k-=365;
    			yy++;
    		}
    		if(yy%100!=0&&yy%4==0||yy%400==0)
    		{
    			for(i=1;i<=12;i++)
    			{
    				if(k>31&&(i==1||i==3||i==7||i==5||i==8||i==10||i==12))
    				k-=31;
    				else if(k>30&&(i==4||i==6||i==9||i==11))
    				k-=30;
    				else if(i==2&&k>29)
    				k-=29;
    				else break;
    			}
    		}
    		else
    		{
    			for(i=1;i<=12;i++)
    			{
    				if(k>31&&(i==1||i==3||i==7||i==5||i==8||i==10||i==12))
    				k-=31;
    				else if(k>30&&(i==4||i==6||i==9||i==11))
    				k-=30;
    				else if(i==2&&k>28)
    				k-=28;
    				else break;
    			}
    		}
    		if(k==0&&i==1)
    		printf("%d-12-31
    ",yy-1);
    		else
    		printf("%d-%d-%d
    ",yy,i,k);
    	}
    	return 0;
    }


  • 相关阅读:
    《人月神话》读后感
    软件工程心得体会(十一)
    Arch + Win10 EFI 引导重装记录
    BurpSuite 的使用
    Wireshark 的使用
    Android 中的反调试技术
    IDA 对 so 的动态调试
    Smail 中的一些点
    IDA 对 SO 的逆向
    动态调试smali代码
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273688.html
Copyright © 2020-2023  润新知