fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4.  
  5. std::string nexttime(std::string nowtime) {
  6. std::string hs, ms, ss;
  7. std::istringstream nowstream(nowtime);
  8. std::getline(nowstream, hs, ':');
  9. std::getline(nowstream, ms, ':');
  10. std::getline(nowstream, ss);
  11. int h = std::stoi(hs);
  12. int m = std::stoi(ms);
  13. int s = std::stoi(ss);
  14. /*-------------------------*/
  15. s++;
  16. if (s >= 60) { m++; s = 0; }
  17. if (m >= 60) { h++; m = 0; }
  18. if (h >= 24) h = 0;
  19. /*-------------------------*/
  20. hs = (hs = "0" + std::to_string(h)).substr(hs.size() - 2);
  21. ms = (ms = "0" + std::to_string(m)).substr(ms.size() - 2);
  22. ss = (ss = "0" + std::to_string(s)).substr(ss.size() - 2);
  23. return hs + ":" + ms + ":" + ss;
  24. }
  25.  
  26. void f(std::string sin) {
  27. std::cout << sin << std::endl;
  28. std::cout << nexttime(sin) << std::endl << std::endl;
  29. }
  30.  
  31. int main() {
  32. f("00:00:00");
  33. f("23:59:59");
  34.  
  35. f("00:03:59");
  36. f("15:59:59");
  37.  
  38. return 0;
  39. }
  40. /* end */
  41.  
Success #stdin #stdout 0.01s 5276KB
stdin
Standard input is empty
stdout
00:00:00
00:00:01

23:59:59
00:00:00

00:03:59
00:04:00

15:59:59
16:00:00