计算日期间隔(20分)
题目内容:
用结构体实现计算日期的差值:
(1)编写一函数,计算两个日期之间的时间差,并将其值返回。日期以年、月、日表示。“时间差”以天数表示。注意考虑日期之间的闰年。函数的输入参数为日期1和日期2,为了计算简便,假设用户输入的日期1总是早于日期2。函数的返回值为时间差,单位为天数。
(2)编写一程序,在主函数中输入两个日期,调用上述函数计算两个日期之间的时间差,并将结果输出。
输入格式:
分两行分别输入日期1和日期2,为了计算简便,要求用户输入的日期1总是早于日期2。输入日期包括年月日、年月日之间用空格分隔。
输出格式:
两个日期之间相隔的天数。
输入样例:
1998 7 5
2020 2 10
输出样例:
7890
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#include <iostream> #include <algorithm> using namespace std; int day_diff(int year, int month, int day); int main(int argc, char const *argv[]) { int y2, m2, d2; int y1, m1, d1; cin>>y1>>m1>>d1; cin>>y2>>m2>>d2; cout<<day_diff(y2, m2, d2) - day_diff(y1, m1, d1)<<endl; return 0; } int day_diff(int year, int month, int day) { int y, m, d; //判断日期是否大于3月并且记录到3月的间隔月数 m = (month + 9) % 12; //如果月份为1月或2月,则不包括当前年 y = year - m/10; //y/4 - y/100 + y/400是加所有闰年多出的那一天 //30 * m + (5 + 6 * m)/10用于计算到当前月到3月1日间的天数,306=365-31-28(1月和2月的总天数) d = 365*y + y/4 - y/100 + y/400 + 30 * m + (5 + 6 * m)/10 + (day - 1); return d; }
下面的分析还可以。
https://www.cnblogs.com/cndccm/p/11974754.html
最后
以上就是听话豆芽最近收集整理的关于计算日期间隔的全部内容,更多相关计算日期间隔内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复