Question
Time Conversion C++: Given a time in -hour AM/PM format, convert it to military (24-hour) time. Note: Midnight is 12:00:00AM on a 12-hour clock, and
Time Conversion C++: Given a time in -hour AM/PM format, convert it to military (24-hour) time.
Note: Midnight is 12:00:00AM on a 12-hour clock, and 00:00:00 on a 24-hour clock. Noon is 12:00:00PM on a 12-hour clock, and 12:00:00 on a 24-hour clock.
Input Format
A single string containing a time in -hour clock format (i.e.: or ), where and .
Output Format
Convert and print the given time in -hour format, where .
Sample Input
07:05:45PM
Sample Output
19:05:45
Note: Midnight is 12:00:00AM on a 12-hour clock, and 00:00:00 on a 24-hour clock. Noon is 12:00:00PM on a 12-hour clock, and 12:00:00 on a 24-hour clock.
Input Format
A single string containing a time in -hour clock format (i.e.: or ), where and .
Output Format
Convert and print the given time in -hour format, where .
Sample Input
07:05:45PM
Sample Output
19:05:45
Explanation::
Code in C++ is given below.
Please read all the comments for better understanding of the code.
Screenshots of the output are provided at the end of the code.
Code in C++::
#include
string timeConversion(string s){ /** * Following two strings are declared named d and c respectively. * String c will be storing the converted format time and we will return * c as the answer. */ string d,c="";
/** * String d stores "PM" or "AM" */ d=s.substr(8,2);
/** * An integer named hr is declared below and it stores * the hh part of string hh:mm:ssPM in integer format. */ int hr=atoi(s.substr(0,2).c_str());
if(hr==12 && d=="AM"){ /** * Now suppose hr is 12 and its AM then we know that it's * midnight and so hr must be 0. */ hr=0; } if(d=="PM" && hr!=12){ /** * Suppose d is "PM" and hr is not 12 then we add 12 into hr. */ hr+=12; } if(hr
/** * Now we convert hr back to string using stringstream. * A variable named hour is declared and we convert hr to string as follows. */ stringstream hour; hour
} int main(){ /** * A string named s is declared and using cin we scan the string. */ string s; cin>>s; /** * Below we call the function and pass string s as parameter. * Whatever function returns, it is printed. */ cout
OUTPUT::
Test Case 1::
Could you please give another example of the atoi method? Also, please explain the following line of source code:
int hr=atoi(s.substr(0,2).c_str());
What is c_str()?
Is there a simpler way to convert the int variable hr to a string type? Why use stringstream in the first place?
stringstream hour; hour
Why do we need to type .str after the variable name "hour"? Does s.substr(2,6) "capture" or gets the 2nd to the 6th element of the string s? Why did the string s get shorter? Initially, the string has a length of 10 elements and now the string s is only needed from the 2nd element to the 8th element? What happened to "AM" or "PM"?
c=c+hour.str()+s.substr(2,6);
CAChegg\Clock.exe 07:05:45PM 19:05:45 Process returned ? (0x0) execution time : 28.842 s Press any key to continueStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started