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

解题思路:先算出从出生到出生这年结束一共经过了多少天,然后加上从出生第2年到出生第19年每年的天数,最后加上20岁生日那年要经过多少天才是他的生日。   注意:(1)、如果出生这年是闰年,而20年后不是闰年,输出-1;(2)、出生这天为出生的第0天

参考代码:

#include<stdio.h>
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int leapyear(int x) //判断闰年
{if((x%4==0&&x%100!=0)||x%400==0)return 1;return 0;
}
int count(int a,int b,int c) //判断一年中的第几天
{int s=0,i;if(a%4==0&&a%100!=0||a%400==0){for(i=1;i<b;i++)s+=m[i];if(b>2)return s+c+1; //注意闰年2月是29天else return s+c;   }else{for(i=1;i<b;i++)s+=m[i];return s+c;}
}
int main()
{int j,n,Y,M,D,sum,y,m,d;scanf("%d",&n);while(n--){scanf("%d-%d-%d",&Y,&M,&D);if(M==2&&D==29&&!leapyear(Y+20)){printf("-1\n");continue;}sum=0;if(leapyear(Y))sum+=366-count(Y,M,D);else sum+=365-count(Y,M,D);j=1;Y++;while(j<=20){if(leapyear(Y)&&j!=20)sum+=366;else if(!leapyear(Y)&&j!=20)sum+=365;else if(j==20)sum+=count(Y,M,D);Y++;j++;}printf("%d\n",sum);     }return 0;
}

NYOJ 312 20岁生日相关推荐

  1. 想和你一起为 Visual Studio 庆祝20岁生日

    Visual Studio Live 倒计时开始-- 1997年1月28日,Visual Stuido 97正式推出,她将Visual Basic.Visual C++.Visual J++.Visu ...

  2. 实现时间的计算: 要求用户输入身份证号,若格式有误,要求其重新输入。然后根据身份证号码输出20岁生日所在周的周三的日期

    实现时间的计算: 要求用户输入身份证号,若格式有误,要求其重新输入.然后根据身份证号码输出20岁生日所在周的周三的日期(个人笔记,大佬勿喷) package day03;import java.uti ...

  3. 今天朋友20岁生日,标记下

    今天我的高中同学也是死党20岁生日,因为他前段时间开通了百度博客,所以我发现了他原来是90后,我一直以为他和我一样是89年的,悲剧哇 这个月初,他就通知我今天要过来吃饭,他生日请客,邀请我们这些好友聚 ...

  4. 2021.1.4--我的20岁生日感悟

    今天是我20岁的生日,祝我自己生日快乐呀! 没想到期待已久的20岁生日就这么草率的结束了,没有蛋糕.很少的祝福,在学业的压力和焦虑中度过. 今年真的是极为不顺的一年,身体上的伤害导致了我严重的心理压力 ...

  5. nyoj312 20岁生日

    我的方法:先计算他从出生的下一年开始到他20岁那年(只计算到生日那年,不是那月那天,比如1980-1-13,只计算1981.1.1-2000.1.1)共经历多少天,然后计算出生那年到下年的天数,再计算 ...

  6. 太炸了!SpaceX迎来20岁生日,马斯克收到一份特殊礼物

    博雯 金磊 发自 凹非寺 量子位 | 公众号 QbitAI SpaceX 20周年生日这天,粉丝却送上了一份火箭爆炸合集作为礼物? SpaceX的20年历史就是决心和坚持的最好例子. 感谢你从未放弃, ...

  7. Windows XP迎来20岁生日,仍有上百万用户坚守

    整理 | 祝涛 出品 | CSDN(ID:CSDNnews) 2001年10月25日,微软生产的操作系统Windows XP正式登陆零售商店,曾备受用户的喜爱.2009年微软结束了对WinXP的主流支 ...

  8. 20岁生日,写下的我

    开始咯 岁月如梭,转眼已到弱冠之年,今天是我二十岁生日.过了今天,我就是一个二十岁的青年了,再也不会被人看做是小孩子,从18岁到20岁的日子,真的过得很快.还曾经在自己永远的十八岁里面.转眼间就翻过了 ...

  9. 腾讯20岁生日前夕,给了自己一个改变

    经历了梦想和市值的双重责问后,20岁的腾讯步履不再一马平川,多了几分被做空流言所压迫的沉重.但很多唱衰者似乎也在有意忽略,这家半年盈利高达425亿元.同比增长30%的全球超级公司所积蓄的能量. 看似在 ...

最新文章

  1. 2019-06-07 Java学习日记之CSS
  2. Android的AutoCompleteTextView在API17高版本添加的setText函数在低版本系统居然能正常调用?官方文档是不是不靠谱了?...
  3. Redis的常用命令——hash的常用命令
  4. 今日定工资,不知是涨是跌,最迟明晚反馈
  5. Go语言中查询SqlServer数据库
  6. 找回丢失的端星网络客户端
  7. 12 组合与继承、CSS Module
  8. php发展历,PHP的发展历程
  9. 判4年!旷视科技司机敲诈董事长300万元未遂
  10. EntityFramework 如何查看执行的 SQL 代码?
  11. Haclon 一些关于显示的基本算子(1)
  12. 计算机组成与体系结构第一次试验:运算器实验
  13. 控制工程基础学习笔记-第1章 概述
  14. 财务部门如何用OKR管理法?看最新OKR模板
  15. 深入了解style标签元素
  16. mas机 mysql_移动MAS机开发相关
  17. 201621123030《Java程序设计》第3周学习总结
  18. 有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1,这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的建筑高度为零)
  19. html显示json数据中某一条的数据,php - 给定一个具有json格式数据的API,我该如何在HTML表中显示数据? - 堆栈内存溢出...
  20. 梁启超死亡真相:主刀医生错把健康的肾切除

热门文章

  1. 【BZOJ 1877】 [SDOI2009]晨跑(费用流)
  2. 实例解说Linux命令行uniq (转)
  3. Html基础Part1:Htmla标签的几种跳转姿势
  4. Tricks with Direct Memory Access in Java
  5. 巧妙解决:access denied (javax.management.MBeanTrust...
  6. 深入浅出Node.js(八):Connect模块解析(之二)静态文件中间件
  7. python类库32[多进程同步Lock+Semaphore+Event]
  8. 命令2-Create Project Tree
  9. Hibernate+Spring整合使用二级缓存
  10. 国内企业应如何实施ITSM