NYOJ-20岁生日

20岁生日

时间限制:1000 ms  |  内存限制:65535 KB

难度:1

描述
路过这的20岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达20岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达20岁生日所经过的总天数,让他好来比较一下。

输入
一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。
输出
T行,每行一个数,表示此人从出生到20岁生日所经过的天数。如果这个人没有20岁生日,就输出-1。
样例输入
1
1988-03-07
样例输出
7305

代码:

#include<stdio.h>
int f[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool leap_year(int n)
{
	if(n%4==0&&n%100!=0||n%4==0&&n%400==0)
	return true;
	else
	return false;
}
int DAY(int year,int month,int day)
{
	int i,sum=0;
	for(i=1;i<month;++i)
	sum+=f[i];
	sum+=day;
	if(month>2&&leap_year(year))
	return sum+1;
	else
	return sum;
}
int main()
{
	int T,year,month,day,i,sum;
	scanf("%d",&T);
	while(T--)
	{
	    scanf("%d-%d-%d",&year,&month,&day);
	    if(month==2&&day==29&&!leap_year(year+20))
	    {
	    	printf("-1\n");
	    	continue;
	    }
	    sum=0;
	    for(i=1;i<=19;++i)
	    {
	      if(leap_year(year+i))
	      sum+=366;
	      else
	      sum+=365;
	    }
		if(leap_year(year))
		sum=sum+(366-DAY(year,month,day));
		else
		sum=sum+(365-DAY(year,month,day));
	    sum+=DAY(year+20,month,day);
	    printf("%d\n",sum);
	}
	return 0;
}

解题报告:

闰年并不都是每四年一润:【 四年一润,百年不润,四百年再润】

例:1980是闰年,1900并不是闰年

时间: 2024-11-05 13:32:56

NYOJ-20岁生日的相关文章

临江仙 送给自己20岁生日

明天就是我的生日了,什么也不说了,都写在词里了. 临江仙 醉近湖堤疯戏水,罢去难入酣眠. 似忧若喜落人间, 惶惶持弱冠,拂水起微澜. 远处江湖居客所,小阅浅沼深湾. 既生七尺遇神鼋, 当带三尺剑,遂志笑奔三.

20岁的第一天……

很不可思议,今天就是我的20岁生日快乐…… 感觉18岁的生日是昨天过的::>_<:: 一不小心自己已经奔二了::>_<:: 内心有一点点的淡然也有更多的无奈…… 我还记着当年自己16岁,朋友过20岁生日,那时候觉得人家很成熟呢~然后……现在朋友已经快要成家了…… 然后我就变成了20岁,讲道理变成20岁的我,依然和16岁差不多的智商……不知是喜是忧. 唉,总之自己是真的变成了20岁,意味着自己的责任更重了,更需要努力了::>_<:: 很不甘心. 过了二十马上就要迎来30岁

18岁生日

18岁生日 Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下. Input 一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD.如我的生日是1988-03-07. Output T行,每行一个数,表示此人从出生到18岁生日所经过的天数.如果这个人没

杭电1201--18岁生日

18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 23275    Accepted Submission(s): 7449 Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他

血仍未冷——写在37岁生日

生日差不多在一年中间,所以今年开始除了年终总结,在5月20日也写篇文章,算是对上半年的回顾,也对下半年做个展望.虽然2014年只过了五个月,但事情并不少哈. 茅台结项暂别咨询 1月初顺利结束长达半年的茅台项目之后.跟客户关系一如既往地好,也真正用专业知识解决了一些问题.收获了前所未有的成就感,要知道单个项目超过200万,算项目经理只有3个人参与的项目顺利完成收回95%的款在任何咨询公司都不是一项容易的事情.无论发生过什么,感谢提供这个机会的咨询公司,也非常感谢同吃同住的兄弟们.借由此项目,我为自

1037:18岁生日(日期计算问题)

题目描述 小明的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下. 输入格式 输入的第一行是一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD.如我的生日是1988-03-07. 输出 T行,每行一个数,表示此人从出生到18岁生日所经过的天数.如果这个人没有18岁生日,就输出-1. 样例输入 1198

一路向前,不要回头——记于24岁生日

今天正式步入第24个年头. 这一年有很多不一样的事情. 第一次出差实习,跟着帅气的师兄到洛阳做一个系统联调的项目.为期两个月.吃住较好,唯一的遗憾就是没有很好地维护好他的代码,然后我就必须得开学了. 第一次到京上学,说实话,这也是我人生中最后一个学历了. 第一次与甲方商量项目进度.今年跟甲方见了两次面,一次是在洛阳,一次是在北京.甲方并没有想象中那么恐怖,但是洛阳的甲方显然要比北京的虚的多.船总完全没有一个甲方大爷的感觉,对我们学生生活各个方面都问到了,总之非常亲切.洛阳的甲方就感觉完全是国企里

hdu 1201 18岁生日 (简单题)

18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18281    Accepted Submission(s): 5776 Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他

hdu_1201 18岁生日

http://acm.hdu.edu.cn/showproblem.php?pid=1201 分析: 看到题目时,纠结了一会儿--出生那一年算不算一岁?  不算的.   1900.3-1901.3 才是一岁,是个时间间隔 (主要是因为这里是按生日来算年龄,而有些题是按年份来说而非生日,这两者还是有些区别) 1.   闰年判断 整除4不整除100    或者   整除400 之前觉得这两个条件搞不清楚,闰年不是每四年一个吗? 每4年有个闰年 -- 不严谨 应是四年一闰,百年不闰,四百年再闰 原因: