Defining overloaded functions
Calling an overloaded function
Activity: Overloading to military timeGraded Playground Autograder
For some reason, the U.S. military has been getting their time as the number of hours (
as the number of minutes (
unsigned int) as the time elapsed from 00:00. Your task as their software engineer is to convert these measurements to a more readable format. More specifically, your task is to implement an overloaded function to convert either
of these inputs to military time.
The military time displays the hour count (0-23 inclusive) followed by the minute count (0-59 inclusive). If either the hour
count or minute count is less than 10 (i.e., a single digit), you will need to prepend a 0 to it in your final answer.
You are tasked to write the function
ToMilitaryTime, which converts a time measurement to the time in the day (24 hours). The measurements can be made in minutes passed as an
unsigned int or in hours passed as a
double. You should return the military time in the format
hh:mm. If your minute and/or hour count is less than 10, you must prepend a 0 (i.e., 14:9 should be 14:09) as if reading the time on a digital clock displaying military time. For example,
ToMilitaryTime(8.4) -> "08:24" and
ToMilitaryTime(389u) -> "06:29". When computing a time's minute component, round to the nearest minute since fractional minutes cannot be reported. You must do this using
#include <cmath>). Since
round() returns a
double and you need an
std::to_string. Finally, if you are given input that falls out of the range of military time (i.e., an hour or minute count is less than 0 OR hour count is > 24.0 OR minute count > 1440), you will need to throw an exception.
Functions to Implement
std::string ToMilitaryTime(unsigned int num_mins); // Example: ToMilitaryTime(389u) => "06:29" // notice that the argument must be an unsigned int. // Example: ToMilitaryTime(844u) => "14:04" // Example: ToMilitaryTime(1440u) => "00:00" std::string ToMilitaryTime(double num_hours); // Example: ToMilitaryTime(8.4) => "08:24" // Example: ToMilitaryTime(14.4432) => "14:27" // Example: ToMilitaryTime(24.0) => "00:00"