概述
计算日期间隔(20分)
题目内容:
用结构体实现计算日期的差值:
(1)编写一函数,计算两个日期之间的时间差,并将其值返回。日期以年、月、日表示。“时间差”以天数表示。注意考虑日期之间的闰年。函数的输入参数为日期1和日期2,为了计算简便,假设用户输入的日期1总是早于日期2。函数的返回值为时间差,单位为天数。
(2)编写一程序,在主函数中输入两个日期,调用上述函数计算两个日期之间的时间差,并将结果输出。
输入格式:
分两行分别输入日期1和日期2,为了计算简便,要求用户输入的日期1总是早于日期2。输入日期包括年月日、年月日之间用空格分隔。
输出格式:
两个日期之间相隔的天数。
输入样例:
1998 7 5
2020 2 10
输出样例:
7890
#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
最后
以上就是听话豆芽为你收集整理的计算日期间隔的全部内容,希望文章能够帮你解决计算日期间隔所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复