嘿谢谢你。我只是不想说如果有人之前遇到过这个问题,我会道歉。
我花了几个小时搜索论坛和谷歌搜索类似的问题,但到目前为止没有运气。
我打算用这个程序打印两次24小时格式之间的经过时间。
到目前为止,我认为我只是把头转过来将第1和第2次“hh”转换为正确的24次,但却无法理解如何做分钟和秒。
我非常感谢任何指导,这将非常有帮助。欢呼声。
int main()
{
char time1[ 48 ] = "14:48:34";
char time2[ 48 ] = "02:18:19";
int hour1;
int min1;
int sec1;
int hour2;
int min2;
int sec2;
int seconds;
int temp;
//time1
hour1 = atoi( strtok( time1, ":" ) );
min1 = atoi( strtok( NULL, ":" ) );
sec1 = atoi( strtok( NULL, ":" ) );
//time2
hour2 = atoi( strtok( time2, ":" ) );
min2 = atoi( strtok( NULL, ":" ) );
sec2 = atoi( strtok( NULL, ":" ) );
seconds = hour1 * 60 * 60; //convert hour to seconds
...
system("PAUSE");
return 0;
}
答案 0 :(得分:2)
不要在小时,分钟和秒之间取得差异。从午夜开始将这两个时间转换为秒,并取出它们之间的差异。然后转换回hh:mm:ss。
顺便说一下:time.h中的结构和功能可以提供帮助。
答案 1 :(得分:0)
假设时间是在同一天(同一天),解决问题的最佳方法是将时间转换为午夜格式的秒数,如:
long seconds1 = (hours1 * 60 * 60) + (minutes1 * 60) + seconds1;
long seconds2 = (hours2 * 60 * 60) + (minutes2 * 60) + seconds2;
long deference = fabs(seconds1 - seconds2);
然后将deference转换回h:m:s格式,如;
int hours = deference / 60 / 60;
int minutes = (deference / 60) % 60;
int seconds = deference % 60;