本文主要是介绍【C++】案例:计算两个日期间的天数差距,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <iostream>
#include <sstream>
#include <iomanip>
#include <ctime>// 计算两个日期之间的天数差距
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::mktime
将 tm
结构体转换为秒数,以便计算两个日期之间的秒数差距。
最后,通过将秒数差除以每天的秒数,计算出日期之间的天数差距,并将结果输出到控制台。这样,用户就能获得输入的两个日期之间的天数差距。
这篇关于【C++】案例:计算两个日期间的天数差距的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!