日期差值
来源:互联网 发布:苏州app软件开发 编辑:程序博客网 时间:2024/06/09 14:38
问题 A: 日期差值
题目描述
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
输入
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
输出
每组数据输出一行,即日期差值
样例输入
20130101
20130105
样例输出
5
代码
int month[13][2]={{0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};bool isleap(int y){ return(y%4==0&&y%100!=0) || (y%400==0);}int main(){ int timer1,timer2; int y1,d1,m1; int y2,d2,m2; while(scanf("%d%d",&timer1,&timer2)!=EOF) { if(timer1>timer2) { int temp =timer1; timer1=timer2; timer2=temp; }y1=timer1/10000;m1=timer1%10000/100;d1=timer1%100; y2=timer2/10000;m2=timer2%10000/100;d2=timer2%100;int ans =1; while(d1<d2 || y1<y2 || m1<m2) { d1++; if(d1 == month[m1][isleap(y1)]) { m1++; d1=1; } if(m1==13) { y1++; m1=1; } ans++; } printf("%d\n",ans); } return 0;}
若第一个日期大于后面的日期,交换日期,使前面的日期早于第二个
简单思想:从早的日期开始不断+1并进循环判断,直到日期和后面的日期相等,其间
若天数大于月份天数上限,则月份+1,天数从1开始
若月数大于12个月,则年份+1,月份从1开始
年,月,日里面任然存在任一个小于目标日期的年,月,日的话说明还没有到达目标日期就继续循环,日期+1
改进想法是直接将年份+1直到比目标年份小1,每次年份+1,则判断是否闰年,并累加天数365或366.
阅读全文
0 0
- 日期差值
- 日期差值
- 日期差值
- 日期差值
- 日期差值
- 日期类-日期差值
- 计算日期差值
- php计算日期差值
- jobdu 6 日期差值
- 题目6:日期差值
- 题目1096:日期差值
- datetime计算日期差值
- 题目1096:日期差值
- 上海交大2009 日期差值
- 题目1096:日期差值
- 计算日期天数差值
- 两个日期差值
- 题目1096:日期差值
- 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
- Sort-----148. Sort List
- SQL注入之sqlmap爆破sqli-labs-master
- MyBatis(3)--MyBatis一些概念
- mybatis-使用原始dao
- 日期差值
- 获取git仓库
- gulp构建
- MVG读书笔记——三维空间中的射影几何(二)
- 启明之星
- Python爬取天气预报数据,并存入到本地EXCEL中
- mybatis-自动生成mapper接口实现类
- [扩展kmp] hdu6153 A Secret
- 遍历二叉树(递归与非递归)