Napišite razred Time, ki naj ima:
privatne instančne spremenljivke:
hour,
minute in
second.
razredne spremenljivke:
maxHour, ki je konstanta in predstavlja maksimalno vrednost, in sicer 24
noonHour, ki je konstanta in predstvalja opoldne, in sicer ima vrednost 12
javni konstruktor s 3 parametri (pri tem pazite, da nastavite vrednosti le, če je čas veljaven, sicer nastavite vse vrednosti na 0),
javno metodo toString, ki vrne čas kot string, in sicer v formatu hh:mm:ss (npr. 14:05:30),
javno metodo toString12HourFormat, ki vrne čas kot string, vendar je čas prilagojen za 12-urni časovni sistem. Torej je potrebno ustrezno spremeniti čas in na koncu dodati še "AM"/"PM". Format pri tem zapisu je hh:mm:ss XM (npr. 18:03:01 --> 06:03:01 PM),
javno razredno metodo isTimeValid(unsigned int hour, unsigned int minute, unsigned int second), ki preveri, ali je možen čas glede na podane podatke. Potrebno je upoštevati maksimalne vrednosti, in sicer 23:59:59. Primer: isTimeValid(14, 3, 43) vrne true, isTimeValid(16, 67, 91) vrne false.
javno razredno metodo parse(std::string time), ki prejme čas v obiki niza (v formatu hh:mm:ss), razbere posamezne vrednosti in vrne čas tipa Time.
V glavnem programu prikažite delovanje vseh metod. Ustvarite vsaj 5 različnih objektov razreda Time in na ta način preverite, ali metode pokrivajo vse možne scenarije.
Ostali napotki pri reševanju naloge:
Če potrebujete kako metodo get ali set (za posamezno instančno spremenljivko), si jo zapišite.
V nalogi uporabite kazalec this na vseh mestih, kjer je smiselno.
V nalogi uporabite določilo const pri vseh metodah, kjer je smiselno.
substr: https://cplusplus.com/reference/string/string/substr/