当前位置:首页 C++ > 正文

C++完成两个日期之间相隔天数的计算

作者:野牛程序员:2023-12-13 18:58:20 C++阅读 2707

C++中,可以使用以下的代码来计算两个日期之间的天数差异。这里我使用了C++的 chrono 库来处理日期和时间。

#include <iostream>
#include <chrono>

int main() {
    // 输入日期1
    std::cout << "请输入第一个日期(年 月 日): ";
    int year1, month1, day1;
    std::cin >> year1 >> month1 >> day1;

    // 输入日期2
    std::cout << "请输入第二个日期(年 月 日): ";
    int year2, month2, day2;
    std::cin >> year2 >> month2 >> day2;

    // 构建tm结构体
    std::tm tm1 = {0, 0, 0, day1, month1 - 1, year1 - 1900};
    std::tm tm2 = {0, 0, 0, day2, month2 - 1, year2 - 1900};

    // 使用mktime获取time_t
    std::time_t time1 = std::mktime(&tm1);
    std::time_t time2 = std::mktime(&tm2);

    // 构建日期对象
    std::chrono::system_clock::time_point date1 = std::chrono::system_clock::from_time_t(time1);
    std::chrono::system_clock::time_point date2 = std::chrono::system_clock::from_time_t(time2);

    // 计算日期差异
    std::chrono::duration<int, std::ratio<60 * 60 * 24>> days = std::chrono::duration_cast<std::chrono::duration<int, std::ratio<60 * 60 * 24>>>(date2 - date1);

    // 输出结果
    std::cout << "两个日期之间相隔的天数是: " << days.count() << " 天" << std::endl;

    return 0;
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击