Прошедшее время между двумя в 24-часовом формате чч: мм: сс

Эй, спасибо, что зашел. Я просто не хочу сказать, что извиняюсь, если кто-нибудь сталкивался с этим вопросом раньше.

Я часами искал через форумы и гугл подобные проблемы, но пока не повезло.

Мое намерение для этой программы — распечатать прошедшее время между двумя часами в 24-часовом формате.

На данный момент, я думаю, я только нашел способ преобразовать 1-е и 2-е «чч» в правильное 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

Решение

Не принимайте разницу между часами, минутами и секундами. Преобразуйте оба раза в секунды с полуночи и возьмите разницу между ними. Затем преобразуйте обратно в чч: мм: сс.

Кстати, есть структуры и функции в time.h это может помочь.

2

Другие решения

Предполагая, что время указано в один и тот же день (одна и та же дата), лучшим способом решения вашей проблемы является преобразование времени в секунды из полуночного формата, например:

long seconds1 = (hours1 * 60 * 60) + (minutes1 * 60) + seconds1;

long seconds2 = (hours2 * 60 * 60) + (minutes2 * 60) + seconds2;

long deference = fabs(seconds1 - seconds2);

затем преобразуйте ссылку обратно в формат h: m: s;

int hours = deference / 60 / 60;

int minutes = (deference / 60) % 60;

int seconds = deference % 60;

0

По вопросам рекламы [email protected]