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;
}

猜你喜欢

转载自www.cnblogs.com/DARTH-VADER-EMPIRE/p/9550349.html