fork download
  1. #include <iostream>
  2. #include <cassert>
  3. using namespace std;
  4.  
  5. struct Time
  6. {
  7. int sec;
  8. int min;
  9. int hour;
  10. };
  11.  
  12. Time inTime();
  13. void outTime(Time);
  14. Time secToTime(int);
  15.  
  16. int main ()
  17. {
  18. cout << "Введите первый момент времени\n";
  19. Time myTime1 = inTime();
  20. cout << "Введите второй момент времени\n";
  21. Time myTime2 = inTime();
  22.  
  23. int sec1 = (myTime1.sec + (myTime1.min * 60) + (myTime1.hour * 3600)),
  24. sec2 = (myTime2.sec + (myTime2.min * 60) + (myTime2.hour * 3600));
  25.  
  26. if (sec1 > sec2)
  27. sec1 -= sec2;
  28. else
  29. sec1 = sec2 - sec1;
  30.  
  31. cout << "Разница между введенными моментами времени: ";
  32. outTime(secToTime(sec1));
  33.  
  34. return 0;
  35. }
  36.  
  37. // ввод времени
  38. Time inTime()
  39. {
  40. Time t;
  41. cout << "Введите значения времени!\n>> часы: ";
  42. cin >> t.hour;
  43. assert(t.hour >= 0 && t.hour <= 24);
  44.  
  45. cout << ">>минуты: ";
  46. cin >> t.min;
  47. assert(t.min >= 0 && t.min < 60);
  48.  
  49. cout << ">>секунды: ";
  50. cin >> t.sec;
  51. assert(t.sec >= 0 && t.sec < 60);
  52. return t;
  53. }
  54.  
  55. void outTime(Time t){
  56. cout << "Часов: " << t.hour << ", минут: " << t.min << ", секунд: " << t.sec;
  57. }
  58.  
  59. Time secToTime(int secs){
  60. Time t;
  61. t.hour = secs / 3600;
  62. t.min = (secs %= 3600) / 60;
  63. t.sec = secs % 60;
  64. return t;
  65. }
Success #stdin #stdout 0s 16064KB
stdin
15 13 40
16 14 41
stdout
Введите первый момент времени
Введите значения времени!
>> часы: >>минуты: >>секунды: Введите второй момент времени
Введите значения времени!
>> часы: >>минуты: >>секунды: Разница между введенными моментами времени: Часов: 1 минут: 1 секунд: 1