Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

C++ program to convert/normalize the given time into standard form

  • Difficulty Level : Hard
  • Last Updated : 06 Sep, 2021

Given three variables that represent the hours, minutes, and the second, the task is to write a C++ program to normalize/convert the given time into standard form i.e., HR: MIN: SEC format.

Examples:

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for the language and STL. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.

Input: HR = 5, MIN = 125, SEC = 130
Output: 7:7:10

Approach: To normalize the given time, below are the functions/steps using the class:



  • 3 variables are defined to store the value of hours, minutes, and second respectively.
int HR, MIN, SEC;
where HR represents hours,
      MIN represents minutes and
      SEC represents seconds
  • setTime() function to set values of HR, MIN and SEC:
void setTime(int x, int y, int z)
{
    x = HR;
    y = MIN;
    z = SEC;
}
  • showTime() to display the time:
void showTime()
{
    cout << HR << ":" << MIN << ":" << SEC;
}
  • normalize() function to convert the resultant time into standard form. Normalizing the time by converting it according to the standard time format as:
void normalize()
{
    MIN = MIN + SEC/60;
    SEC = SEC%60;
    HR  = HR + MIN/60;
    MIN = MIN%60;
}

 Illustration: For Example Time: 5: 125: 130

  • To normalize the time:
    • First, divide the SEC by 60 and to find the minutes and add it into MIN,
    • so, 125+(130/60) =125+2 = 127.
  • Then take the modulo of SEC to find the seconds 130 % 60 = 10.
  • Now, divide MIN by 60 find the hours, and add it into HR, 5+(127/60) = 5+2= 7.
  • Lastly take modulus of MIN to find the minutes, 127 % 60 = 7, So, HR= 7, MIN= 7, SEC= 10.
  • Therefore, the result is 7: 7: 10

Below is the implementation of the above approach:

C++




// C++ program to normalize the given
// time into standard form
#include <conio.h>
#include <iostream>
using namespace std;
 
// Time class
class Time {
private:
    // Instance variables
    int HR, MIN, SEC;
 
public:
    void setTime(int, int, int);
    void showTime();
    void normalize();
};
 
// Function that sets the given time
void Time::setTime(int h, int m, int s)
{
    HR = h;
    MIN = m;
    SEC = s;
}
 
// Function to show the given time
void Time::showTime()
{
    cout << endl
         << HR << ":"
         << MIN << ":" << SEC;
}
 
// Function to normalize the given
// time into standard form
void Time::normalize()
{
    // Convert the time into the
    // specific format
    MIN = MIN + SEC / 60;
    SEC = SEC % 60;
    HR = HR + MIN / 60;
    MIN = MIN % 60;
}
 
// Driver Code
int main()
{
    // Object of class Time
    Time t1;
 
    t1.setTime(5, 125, 130);
    t1.showTime();
 
    // Normalize the time
    t1.normalize();
    t1.showTime();
 
    return 0;
}

Output:




My Personal Notes arrow_drop_up
Recommended Articles
Page :