Answer:
Here it the C++ program:
#include <iostream> //to use input output functions in the program
using namespace std; // to identify objects like cin, cout
int main() { //start of the body of main() function
int time = 0; // time entered by the user
int hour = 0; // to hold the value of hours
int min = 0; //to hold the value of minutes
int sec = 0; // to hold the value of seconds
int remaining_time=0; // holds value of remaining time while conversion
cout << "Enter a time in seconds: "; //Prompts user to enter time in secs
cin >> time; //reads the value of time entered by the use
hour = time/3600; //divides the input time to 3600 to convert in hours
remaining_time = time%3600; // to calculate remaining time
min = remaining_time/60; // divides remaining time with 60 to get mins
remaining_time = remaining_time%60;
/* computes remaining time after converting the previous remaining time to minutes. */
sec = remaining_time; // computes no of seconds
// time entered by user should be within this range
if(time>=1 && time<=86400)
/*when if condition is true it displays the input seconds to hours minutes and seconds */
{cout<<"\nThe time is: "<<hour<<" hours, " <<min<<" minutes, and "<<sec<<" seconds\n"; }
else //when if condition evaluates to false
cout<<"Out of range"; } //displays out of range message
Explanation:
Everything is briefly explained in the comments given within the program.
The logic of this program is explained below.
Lets see how the given example works with this program. Suppose the user enters 96500. The message out of range is displayed as this value exceeds the range 1 to 86400.
Suppose user enters 70000. If condition evaluates to true. So this number is converted into hours, minutes as seconds as following:
To calculate hours this formula is used
hour = time/3600;
= 70000/3600
= 19
So the value of hour=19
Now the remaining_time variable works as a temporary variable to hold the remaining input after calculation of each conversion.
So after conversion to hour the remaining_time value is calculated as:
remaining_time = time%3600;
= 70000%3600
= 1600
mod here finds the remainder after conversion to hours as 70000/3600 has quotient 19 and remainder 1600.
Now the value of minutes is computed by this remaining time (value stored in remaining_time).
min = remaining_time/60;
= 1600/60
= 26
So the value of minutes is 26
Lets calculate remaining time:
remaining_time = remaining_time%60;
= 1600%60
= 40
Now the new value stored in remaining_time is 40
Now lets find the value of seconds:
sec = remaining_time;
= 40
As the new value of remaining_time is 40 so seconds=40
Finally the following message is displayed in output:
The time is: 19 hours, 26 minutes, and 40 seconds