Ask Question

A day has 86,400 secs (24*60*60). Given a number in the range 1 to 86,400, output the current time as hours, minutes, and seconds with a 24-hour clock. For example, 70,000 sec is 19 hours, 26 minutes, and 40 seconds. Your program should have user input that is the number of seconds to convert, and then use that number in your calculations. Your output in C⁺⁺.

+5
Answers (1)
  1. 11 March, 06:23
    0
    Here it the C+ + program:

    #include / /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: "<
    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
Know the Answer?
Not Sure About the Answer?
Find an answer to your question 👍 “A day has 86,400 secs (24*60*60). Given a number in the range 1 to 86,400, output the current time as hours, minutes, and seconds with a ...” in 📗 Computers & Technology if the answers seem to be not correct or there’s no answer. Try a smart search to find answers to similar questions.
Search for Other Answers