【发布时间】:2021-08-29 00:48:31
【问题描述】:
我需要找出两个给定日期之间的时间差。
我尝试了以下代码,但无法将其转换为小时分钟秒
const char *time_details = "06/10/2021 16:35:12";
struct tm tm;
strptime(time_details, "%m/%d/%Y %H:%M:%S", &tm); // Prev date
time_t t = mktime(&tm);
const char *time_details1 = "06/11/2021 14:35:12";
struct tm tm1;
strptime(time_details1, "%m/%d/%Y %H:%M:%S", &tm1); // future date
time_t t33 = mktime(&tm1);
int timediff1 = difftime(t33,t);
int seconds1 = timediff1%60;
int hour1 =seconds1/ 3600;
int minutes1 = seconds1 / 60 ;
上面总是以小时分秒显示“0”。但获得一些价值
【问题讨论】:
-
如果你使用的是 c++11,那么看看使用
- stackoverflow.com/questions/31657511/… -
数学上面的代码应该是这样的:
int hour1 = timediff1 / 3600; int minutes1 = timediff1 % 3600 / 60;因为int seconds1 = timediff1%60给出的秒数是从 0 到 59,而你显然不能从这个值计算小时和分钟。 -
@dewaffled 谢谢你的帮助。我得到了输出。谢谢
-
@Dean-Jason。谢谢。
标签: c++ visual-studio c++11 mktime time-t