首页 > 编程知识 正文

计算日期间隔天数的经典算法解析

时间:2023-05-04 16:47:03 阅读:270804 作者:2735

#include <iostream>using namespace std;int mon[12] = { 0,31,59,90,120,151,181,212,243,273,304,334 };//字典int cal(int y, int m, int d)//给出年月日,计算距离0000年0月1日的天数和{    return y * 365 + y / 4 - y / 100 + y / 400 +//算整年经过的天数,包括闰年                   mon[m - 1] + d - 1 +//算整月经过的天数(都视为平年)到此为止基本已经算出总天数了                (((y % 100 != 0 && y % 4 == 0) || y % 400 == 0) && m > 2);//闰年,大于2月需要再加一天}int main(){    int x[2], year, month, day;    for (int k = 0; k < 2; k++)//循环两次读入两个日期    {        scanf("%4d%2d%2d", &year, &month, &day);        x[k] = cal(year, month, day);    }    cout << abs(x[0] - x[1]) + 1;}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。