Advertisement
M_A_Tabarani

School Stuff 10

Oct 4th, 2015
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.01 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void advance(int& timeHr, int& timeMin, int minutes);   //by minutes
  6. void advance(int& timeHr, int& timeMin, int hours, int minutes);    //by hours and minutes
  7. void advance(int& timeHr, int& timeMin, double hours);  //by hours
  8. void outputTime(int timeHr, int timeMin);
  9.  
  10. int main()
  11. {
  12. int timeHour, timeMinute, howAdvance, hours, minutes;
  13. double hoursNfrac;
  14.  
  15. cout<<"Enter time (hour and minute) as two integers seperated by a space \n : ";
  16. cin>>timeHour>>timeMinute;
  17.  
  18. cout<<"Time entered is ";
  19. outputTime(timeHour,timeMinute);
  20.  
  21. cout<<endl;
  22.  
  23. cout<<"Choose how you would like to advance clock \n"<<"(1) By minutes \n(2) By hours and minutes \n(3) by hours \n :";
  24. cin>>howAdvance;
  25.  
  26. switch(howAdvance)
  27. {
  28. case 1:
  29.     cout<<"Enter minutes : ";
  30.     cin>>minutes;
  31.     advance(timeHour,timeMinute,minutes);
  32.     break;
  33.  
  34. case 2:
  35.     cout<<"Enter hours and minutes, seperated by a space : ";
  36.     cin>>hours>>minutes;
  37.     advance(timeHour,timeMinute,hours,minutes);
  38.     break;
  39.  
  40. case 3:
  41.     cout<<"Enter hours : ";
  42.     cin>>hoursNfrac;
  43.     advance(timeHour,timeMinute,hoursNfrac);
  44.     break;
  45.  
  46. default:
  47.     cout<<"Invalid choice \n";
  48. }
  49.  
  50. cout<<"Updated time : ";
  51. outputTime(timeHour,timeMinute);
  52. cout<<endl;
  53. return 0;
  54. }
  55.  
  56. //
  57. //Advance time by minutes
  58. //
  59. void advance (int& timeHr,int& timeMin,int minutes)
  60. {
  61.     int extraHrs=(timeMin+minutes)/60;
  62.     timeMin=(timeMin+minutes)%60;
  63.     timeHr=(timeHr+extraHrs)%24;
  64. }
  65.  
  66. //
  67. //Advance time by hours and minutes
  68. //
  69. void advance(int& timeHr,int& timeMin,int hours, int minutes)
  70. {
  71.     advance(timeHr,timeMin,hours*60 + minutes);
  72. }
  73.  
  74. //
  75. //Advance time by hours (including,possibility,fractions of hours)
  76. //
  77. void advance(int& timeHr,int& timeMin, double hours)
  78. {
  79.     int mins=int(hours*60 + 0.5);
  80.     advance(timeHr,timeMin,mins);
  81. }
  82.  
  83. //
  84. //Display time as two integers separated by a colon
  85. //Insert a leading zero when the minutes value is less than 10
  86. //
  87. void outputTime(int timeHr,int timeMin)
  88. {
  89.     cout<<timeHr<<":";
  90.     if(timeMin<10)
  91.         cout<<"0";
  92.         cout<<timeMin;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement