日期差值
时间:2022-05-08
本文章向大家介绍日期差值,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目描述:
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天
输入:
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
输出:
每组数据输出一行,即日期差值
样例输入:
20110412
20110422
样例输出:
11
#include <iostream>
using namespace std;
#define ISYEAR(x) x%100 != 0 && x%4 == 0 || x%400 == 0 ? 1:0
int dayOfMonth[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
};
struct Date{
int Day;
int Month;
int Year;
void nextDay(){//下一天
Day++;
if (Day > dayOfMonth[Month][ISYEAR(Year)])//天数超过相应月份的天数?
{
Day=1;//天数变为1,月份+1
Month++;
if (Month > 12)//月份超过12?
{
Month=1;
Year++;
}
}
}
};
int buf[5000][13][32];//保存预处理的天数
//空间换时间
int Abs(int x){
return x>0 ? x : -x;
}
int main(){
Date tmp;//基准
int cnt=0;//天数计算
tmp.Day=1;
tmp.Month=1;
tmp.Year=0;
while(tmp.Year <= 5001){//预先吧所有的天数都计算,保存起来
buf[tmp.Year][tmp.Month][tmp.Day]=cnt;//将该日与0年1月1日的天数差保存起来
tmp.nextDay();//计算下一天
cnt++;//计数器累加,每经过一天计数器即+1,代表与原点的日期间隔又增加了一天
}
int d1,m1,y1;
int d2,m2,y2;
//进行多组数据的计算----多组
while(scanf("%4d%2d%2d", &y1, &m1, &d1) != EOF) //此处注意对于格式的控制
{
//当日期1输入正确时,才进行日期2的读取
scanf("%4d%2d%2d", &y2, &m2, &d2);
cout << Abs(buf[y2][m2][d2] - buf[y1][m1][d1] + 1) << endl;
}
return 0;
}
1.空间换时间
2.找一个基准时间
3.scanf(“%d”,&m)!=eof 正确输入;多组数据处理
- 一路走到java工程师,java都快出java9了,到底该如何学java?
- 网站发布合并bll问题的解决
- 痛并快乐着:浅谈大数据时代的分布式存储架构
- linux运维中的命令梳理(四)
- linux运维中的命令梳理(三)
- 轻松水印-批量提取exif信息加水印的工具
- Enterprise Library 4.1学习笔记7----缓存应用程序块之SqlDependency
- linux运维中的命令梳理(一)
- 可视化你的BLAST结果
- linux运维中的命令梳理(二)
- VB-取日期属于星期几
- 全球AI新闻创新实践系列③:华邮、雅虎、美联社、Quartz怎么干!
- nginx+php负载均衡集群环境中的session共享方案梳理
- PowerPoint发布及链接图片的处理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PAT (Basic Level) Practice (中文)1004 成绩排名 (20 分)
- PAT (Basic Level) Practice (中文)1020 月饼 (25 分)
- 201709-2ccf计算机职业资格认证考试第二题公共钥匙盒
- SAP Spartacus里cx-carousel的实现
- 技术分享 | 改写 mysqldump 解决 DEFINER 问题
- CNS图表复现04—单细胞聚类分群的resolution参数问题
- 学习Vue3.0,先从搭建环境开始
- AIM Tech Round 5 (rated, Div. 1 + Div. 2)C. Rectangles
- PAT (Basic Level) Practice (中文)1006 换个格式输出整数 (15 分)
- 编译原理实战入门:用 JavaScript 写一个简单的四则运算编译器(二)语法分析
- PAT (Basic Level) Practice (中文)1023 组个最小数 (20 分)
- Angular里使用createEmbeddedView动态加入新的模板元素
- PAT (Basic Level) Practice (中文)1002 写出这个数 (20 分)
- [笔记整理]几个有点重要的知识点
- PAT (Basic Level) Practice (中文)1005 继续(3n+1)猜想 (25 分)