2015-04-13 4 views
-3

У меня есть код на C++ для преобразования секунд и минут, но кажется, что всякий раз, когда он конвертирует второй, он не обновляет минуту. Как я могу это исправить?C++ для преобразования минут и секунд

#include <iostream> 
using namespace std; 

void Convert(int value, int &hour, int &minute, int &seconds) 
{ 
    hour=value/60; 
    minute=value%60; 
    seconds=value%60; 
} 

int main() 
{ 
    int hour; 
    int seconds; 
    int Seconds_To_Convert = 90; 
    int minute; 
    int Minutes_To_Convert = 70; 

    //calling Convert function 
    Convert(Minutes_To_Convert, hour, minute, seconds); 

    //compute 
    cout<<hour <<" hours and "<<minute<<" minutes "<<"and "<<seconds<<" seconds "; 
    return 0; 
} 

Благодаря

+4

Ну, ваш расчет 'minute' и ваш расчет' seconds' идентичны. Итак ... –

+0

'second = 0;' звучит правильно в вашем случае или может быть 'second = 30;' –

+0

Minutes_To_Convert и Seconds_To_Convert указаны пользователем, поэтому его разделенный – Cael

ответ

3

Похоже, что эта функция должна принимать int количество секунд, а затем решить, что в HRs + минут + секунд.

#include <iostream> 
using namespace std; 

void Convert(int value, int &hour, int &minute, int &seconds) 
{ 
    hour = value/3600;   // Hour component 
    minute = (value % 3600)/60; // Minute component 
    seconds = value % 60;   // Second component 
} 

int main() 
{ 
    int hour; 
    int seconds; 
    int minute; 
    int Seconds_To_Convert = 5432; 

    //calling Convert function 
    Convert(Seconds_To_Convert, hour, minute, seconds); 

    //compute 
    cout << hour <<" hours and " << minute << " minutes " << "and " << seconds << " seconds "; 
    return 0; 
} 

Выход

1 hours and 30 minutes and 32 seconds 

Working example