【C++】案例:计算两个日期间的天数差距

#include 
#include 
#include 
#include 

// 计算两个日期之间的天数差距
int daysBetweenDates(const std::string& s_time, const std::string& e_time) {
    std::tm start_tm = {};
    std::tm end_tm = {};

    // 使用 std::get_time 解析起始日期字符串,并将结果存储在 tm 结构体中
    std::istringstream start_ss(s_time);
    start_ss >> std::get_time(&start_tm, "%Y/%m/%d");

    // 使用 std::get_time 解析结束日期字符串,并将结果存储在 tm 结构体中
    std::istringstream end_ss(e_time);
    end_ss >> std::get_time(&end_tm, "%Y/%m/%d");

    // 将 tm 结构体转换为秒数
    std::time_t start_time = std::mktime(&start_tm);
    std::time_t end_time = std::mktime(&end_tm);

    // 计算两个日期之间的秒数差距
    const int seconds_per_day = 60 * 60 * 24;
    int days_difference = std::difftime(end_time, start_time) / seconds_per_day;

    // 返回日期之间的天数差距
    return days_difference;
}

int main() {
    std::string start_date, end_date;

    // 提示用户输入起始日期
    std::cout << "请输入起始日期(格式:YYYY/MM/DD): ";
    std::cin >> start_date;

    // 提示用户输入结束日期
    std::cout << "请输入结束日期(格式:YYYY/MM/DD): ";
    std::cin >> end_date;

    // 调用计算日期差距的函数
    int result = daysBetweenDates(start_date, end_date);

    // 输出日期差距结果
    std::cout << "日期差距为:" << result << " 天" << std::endl;

    return 0;
}

这段C++代码的功能是计算两个日期之间的天数差距。具体而言,它包含一个名为 daysBetweenDates 的函数,该函数接受两个参数:s_time(起始日期)和e_time(结束日期)。这两个日期的格式为 "YYYY/MM/DD"。

main 函数中,用户被提示输入起始日期和结束日期。然后,程序使用 std::get_time 函数从输入的日期字符串中提取年、月和日,并将其转换为 tm 结构体。接下来,使用 std::mktimetm 结构体转换为秒数,以便计算两个日期之间的秒数差距。

最后,通过将秒数差除以每天的秒数,计算出日期之间的天数差距,并将结果输出到控制台。这样,用户就能获得输入的两个日期之间的天数差距。

你可能感兴趣的:(c++,算法,开发语言)