第几天?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 292366 Accepted Submission(s): 100457

Problem Description
给定一个日期,输出这个日期是该年的第几天。

Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。

Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。

Sample Input
1985/1/20
2006/3/12

Sample Output
20
71

Author
lcy

Source
C语言程序设计练习(一)

问题链接:HDU2005 第几天?
问题简述:(略)
问题分析
  按Markdown格式重写了题解,旧版题解参见参考链接。
  最早写的该题的题解是查表法,用数组来实现表格,若数组下标为k,那么下标为k的数组元素中存放年始到第k-1月经过的天数(不考虑闰年)。有了这个表,天数计算就简单了。天数表中的天数如果直接写数字则非常难懂,不知所云,写表达式则其含义一目了然。
  另外一种计算天数的做法是模拟计算,根据每月的天数进行计算。这里所说的模拟指日子先一个月一个月地过,再一天一天过,日子按年月日顺序过,计算起来要快一些。
程序说明:(略)
参考链接:HDU2005 第几天?【日期计算】
题记:(略)

AC的C语言程序(模拟计算)如下:

/* HDU2005 第几天? */#include <stdio.h>int mdays[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int main(void)
{int y, m, d;while(scanf("%d/%d/%d", &y, &m, &d) != EOF) {if(y % 4 == 0 && (y % 100 || y % 400 == 0))mdays[2] = 29;elsemdays[2] = 28;int days = 0, i;for(i = 1; i < m; i++)days += mdays[i];days += d;printf("%d\n", days);}return 0;
}

AC的C语言程序(查表法)如下:

/* HDU2005 第几天? */#include <stdio.h>int leapyear_day(int year, int month)
{// 1月或2月不用加1天,其他月份润年加1天,非润年不用加1天if(month <= 2)return 0;elsereturn ( ((year%4==0) && (year%100!=0)) || (year%400==0) )?1:0;
}int main(void)
{int year, month, day;int days;int monthsum[] = {  // 到某月份的天数,润年另外加天数0                                 // 1月, 31                                // 2月, 31+28                             // 3月, 31+28+31                          // 4月, 31+28+31+30                       // 5月, 31+28+31+30+31                    // 6月, 31+28+31+30+31+30                 // 7月, 31+28+31+30+31+30+31              // 8月, 31+28+31+30+31+30+31+31           // 9月, 31+28+31+30+31+30+31+31+30        // 10月, 31+28+31+30+31+30+31+31+30+31     // 11月, 31+28+31+30+31+30+31+31+30+31+30  // 12月};while(scanf("%d/%d/%d", &year, &month, &day) != EOF) {// 天数 = 润年需要加的天数(根据年和月计算) + 到某月天数 + 月内天数days = leapyear_day(year, month) + monthsum[month-1] + day;// 输出结果printf("%d\n", days);}return 0;
}

HDU2005 第几天?【日期计算】相关推荐

  1. java语言显示运算时间_JAVA语言之ACM日期计算:输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天...

    本文主要向大家介绍了JAVA语言之ACM日期计算:输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. ACM日期 ...

  2. 标 题:[转帖]SQL Server日期计算(收藏)

    分    类:数据库相关 关键字 :日期 相    关:作者:未知    来源:xpilot 的 Blog 引    用:[0]http://goaler.xicp.net/TrackBack.asp ...

  3. CCF - 201509-2 - 日期计算

    问题描述 试题编号: 201509-2 试题名称: 日期计算 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年 ...

  4. SQL SERVER 常用日期计算

    通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天.你们大部分人大概都知道怎样把日期进行分割(年.月.日等),然后仅仅用分割出来的年.月.日等放在几个函 ...

  5. SAP PP 中关于计划订单和生产订单的日期计算

    计划单的基本完成日期 = 上级物料需求日期 - 物料主数据MRP2视图的收货处理时间天数 (全部以工厂日历的工作日计算)计划单的基本开始日期 = 计划单的基本完成日期 - 物料主数据MRP2视图的自制 ...

  6. java日期类的计算问题_java日期计算(Calendar类)

    昨天学了java日期的格式器,主要是用SimpleDateFormat进行格式化.解析.但这还仅停留在日期的查看(调整显示格式)阶段,更重要的是日期的操作.今天继续学习,记录如下: 今天主要学习的日期 ...

  7. SQL Server日期计算

    通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天.你们大部分人大概都知道怎样把日期进行分割(年.月.日等),然后仅仅用分割出来的年.月.日等放在几个函 ...

  8. iOS学习笔记37 时间和日期计算

    ###一.时间和日期计算 我们在应用开发中,时常需要和时间打交道,比如获取当前时间,获取两个时间点相隔的时间等等,在iOS开发中与时间相关的类有如下几个: NSDate:表示一个绝对的时间点 NSTi ...

  9. 数据库-日期计算-获取年月日

    日期计算 查看宠物多少岁,就可以使用计算日期的函数TIMESTAMPDIFF() #查询当前的日期 mysql> select curdate() from pet; +‐‐‐‐‐‐‐‐‐‐‐‐ ...

最新文章

  1. Python之并行--基于joblib
  2. 多种方法解决Exchange 2010 EMC批量启用邮箱之后出..
  3. wii拆机_设置防砖保护以保护和增强Wii
  4. oracle 加全文索引,Oracle创建全文索引
  5. iSCSI存储设备的udev绑定 以及iscsi重启卡住解决方法
  6. 小动画制作 图片盒子配合定时器 winform 114869633
  7. gta4 l3环境优化补丁_【安全刻不容缓】快给你们的爱7打打补丁吧 俄罗斯大佬的持续更新补丁包来了...
  8. 【Arthas】Arthas 导出堆栈信息
  9. Python 做自动化测试环境搭建
  10. 语音识别技术应用领域介绍
  11. 安装paramiko的方法
  12. python核心编程课后习题解答第三章
  13. C语音--static变量
  14. 【优雅的使用Matlab进行机器学习】作业
  15. LayaBox---Animation---时间轴动画
  16. 大学生数学竞赛试题荟萃
  17. [python][turtle]闪瞎眼的晶体管报时
  18. 游戏玩到这种程度,酱紫真的好吗?
  19. 北京大学肖臻老师《区块链技术与应用》ETH笔记 - 8.0 ETH挖矿难度的调整
  20. ISV在“淘宝”上淘宝

热门文章

  1. 软件单元测试(Unit Test )最佳实践
  2. FPGA外设操作指南1: 8/16位PWM控制器
  3. 关于JEECG中表单提交的中断与手动提交
  4. Unity资源打包之Assetbundle
  5. 关于 cocos2d-x win32 版本的 cpu 占用改良
  6. 小程序uniapp基础
  7. 微软 服务器系统,微软正在开发Windows Server 2022服务器系统
  8. matlab中给三维点云数据增加随机噪声_诺斯顿测量|三维激光扫描技术让化工厂改造变得更轻松和高效...
  9. MySQL之mysqldump的使用
  10. react 组件怎么公用_在React中的组件之间共享数据