• 0050-计算天数


    题目

    计算天数
    难度级别:A; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
    试题描述

    输入一个学生的出生日期,再输入今天的日期,计算今天是这位同学在地球上生活的天数,当然只从出生那天算起,而且包括今天。为了简化程序的复杂度,测试数据假定所有年份的2月份都是 28 天,没有闰年的情况。

    输入
    两行,各有两个标准的日期(年月日),参照样例,分别表示学生出生的日子和今天的日子。
    输出
    一个数,表示该学生在地球上生活的天数。
    输入示例
    2015-9-1
    2016-4-3
    输出示例
    215

    分析

        这题写着很累,但保持清醒就会很容易。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int ye1,ye2,m1,m2,d1,d2,a1,a2,x=28,y=30,z=31;//三种月份天数。多说一句,x1,x2,y1,y2不能作为全局变量!
    int main()
    {
    	scanf("%d-%d-%d",&ye1,&m1,&d1);
    	scanf("%d-%d-%d",&ye2,&m2,&d2);
    	if(m1==1) a1=d1;//起始日期。
    	if(m1==2) a1=z+d1;//超级累加。
    	if(m1==3) a1=z+x+d1;//超级特判。
    	if(m1==4) a1=2*z+x+d1;
    	if(m1==5) a1=2*z+y+x+d1;
    	if(m1==6) a1=3*z+y+x+d1;
    	if(m1==7) a1=3*z+2*y+x+d1;
    	if(m1==8) a1=4*z+2*y+x+d1;
    	if(m1==9) a1=5*z+2*y+x+d1;
    	if(m1==10) a1=5*z+3*y+x+d1;
    	if(m1==11) a1=6*z+3*y+x+d1;
    	if(m1==12) a1=6*z+4*y+x+d1;
    	if(m2==1) a2=d2;//终止日期。
    	if(m2==2) a2=z+d2;//超级累加。
    	if(m2==3) a2=z+x+d2;//超级特判。
    	if(m2==4) a2=2*z+x+d2;
    	if(m2==5) a2=2*z+y+x+d2;
    	if(m2==6) a2=3*z+y+x+d2;
    	if(m2==7) a2=3*z+2*y+x+d2;
    	if(m2==8) a2=4*z+2*y+x+d2;
    	if(m2==9) a2=5*z+2*y+x+d2;
    	if(m2==10) a2=5*z+3*y+x+d2;
    	if(m2==11) a2=6*z+3*y+x+d2;
    	if(m2==12) a2=6*z+4*y+x+d2;
    	printf("%d",(365-a1+1)+a2+(ye2-ye1-1)*365);
    	return 0;
    }
    作者:18西斯光剑
    出处:https://www.cnblogs.com/DARTH-VADER-EMPIRE/
    Copyright ©2018-2020 18西斯光剑
    All Rights Reserved.
  • 相关阅读:
    使用XE7并行库中的TTask(转)
    Delphi xe7并行编程快速入门(转)
    Pre-compile (pre-JIT) your assembly on the fly, or trigger JIT compilation ahead-of-time (转)
    使用RemObjects Pascal Script (转)
    Remobjects SDK 服务器搭建
    toString()方法
    环境变量
    jstl标签学习
    SQL的各种join
    Mybatis的一些配置
  • 原文地址:https://www.cnblogs.com/DARTH-VADER-EMPIRE/p/9550349.html
Copyright © 2020-2023  润新知