18岁生日

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 167   Accepted Submission(s) : 48
Problem Description
Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。
Input
一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。
Output
T行,每行一个数,表示此人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。
Sample Input
1 1988-03-07
Sample Output
6574

注意:基本思想可以把这个分为三部分,出生那年的天数,18岁那年的天数,中间的天数,加起来就可以。

有种情况是该学生没有18的生日的,要单独拿出来考虑,当该学生生日是瑞年但是18生日不是瑞年时,就是这种情况。

我的代码:

#include<stdio.h>
#include<string.h>
int isRuiNian(int year)
{if((year%400==0)||(year%4==0&&year%100!=0))return 1;return 0;
}
int DiJiTian(int year,int month,int day)
{int i,sum=0;for(i=1;i<month;i++){if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)sum+=31;else{if(i==2){if(isRuiNian(year))sum+=29;elsesum+=28;}elsesum+=30;}}sum+=day;return sum;
}
int main()
{int n;char birth[100];scanf("%d",&n);while(n--){ int year ,month, day;int a=0,b=0,c=0,i,total;scanf("%d-%d-%d",&year,&month,&day);if(isRuiNian(year+18)==0&&month==2&&day==29){printf("-1\n");}else{if(isRuiNian(year))a=366-DiJiTian(year,month,day);elsea=365-DiJiTian(year,month,day);for(i=year+1;i<year+18;i++){if(isRuiNian(i))b+=366;elseb+=365;}c=DiJiTian((year+18),month,day);total=a+b+c;printf("%d\n",total);}}return 0;
}

HDOJ-1201 18岁生日相关推荐

  1. HDOJ 1201 18岁生日

    题目链接 纯水题关键是得处理好闰年.闰月问题. AC代码: #include <iostream> using namespace std;int d1[12] = { 31, 28, 3 ...

  2. HDU - 1201 - 18岁生日 - [局部分离思想]

    HDU - 1201 - 18岁生日 https://vjudge.net/problem/HD... 一句话题意:给定出生日期(格式为1988-03-07),求到18岁生日为止经历了多少天:没有18 ...

  3. hdu oj 1201:18岁生日

    题目链接 题意是求每个人18岁生日所经历的天数,一开始没明白如果这个人没有18岁生日,就输出-1,是什么意思,以为是要考虑现在的日子,看他到没到十八. 但后来查了一下了解到意思是如果她的生日是闰年的二 ...

  4. 1201 18岁生日

    18岁生日 Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全 ...

  5. 18岁生日 HDU - 1201

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

  6. 18岁生日 HDU 1201

    18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  7. E - 18岁生日(20)

    添加链接描述 E - 18岁生日(20) HDU - 1201 Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢 ...

  8. HDU1201 18岁生日【日期计算】

    18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. HDU1201 18岁生日【日期计算+水题】

    18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  10. 计算到达18岁生日所经过的总天数

    Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所 ...

最新文章

  1. MySQL笔记之视图的使用详解
  2. IEPLUS(IE增强性插件)
  3. python的内存管理机制及调优手段_Python的内存管理机制及调优手段
  4. c#hello world_C#| 打印消息/文本(用于打印Hello world的程序)
  5. 直播视频网站源码,列表的展开更多和点击收起功能
  6. TraceView issue
  7. IntelliJ IDEA 下载安装以及破解码大集合
  8. html和js制作个人所得税表格,H5编写个税计算器(JS代码编写).doc
  9. 原生安卓X86 TV安装配置
  10. 33 | 如何做好验收测试?
  11. 一只仓鼠引发的热议HUAWEI nova 青春版超大内存走红
  12. ElementUI 整体页面布局
  13. PaddleHub一键识别动物 : resnet50_vd_animals
  14. 企查查接口full的实现`
  15. 搭建CTF-AWD训练平台
  16. Spring Boot整合Redis缓存(Lettuce)
  17. 高等数学学习笔记——第三十二讲——泰勒公式
  18. 有考c语言的软件工程专硕吗,2020年南开大学软件工程硕士考研真题试卷及试题答案,C语言与数据结构考研试题下载...
  19. 胜任力参考阅读资料汇总
  20. mt4 部分内置函数

热门文章

  1. 吴恩达深度学习——深度学习的实用指南
  2. Harbor 2.1发布,工程师的发际线有救了!
  3. 《Node.js实战(双色)》作者之一——吴中骅访谈录
  4. 19【推荐系统19】SNR:多任务学习
  5. PyTorch:数据读取2 - Dataloader
  6. 深度学习:卷积神经网络CNN变体
  7. 投资、理财、炒股记事
  8. 中文停用词文档_实战:朴素贝叶斯对文档进行分类
  9. 动画算计算机专业吗,能够定义角色功能的计算机动画系统属于。 (1.0分)
  10. 【安装包】android-studio