Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- class Clock{
- int hour;
- int minute;
- int second;
- int threshold;
- public:
- Clock(int h, int m, int s, int t):hour(h),minute(m),second(s),threshold(t){};
- Clock():hour(1),minute(12),second(720),threshold(0){};
- bool checkSpace(){
- if( spaceBetween(hour,minute) > (14400 + threshold))
- return false;
- if( spaceBetween(hour,minute) < (14400 - threshold))
- return false;
- if( spaceBetween(minute,second) > (14400 + threshold))
- return false;
- if( spaceBetween(minute,second) < (14400 - threshold))
- return false;
- if( spaceBetween(second,hour) > (14400 + threshold))
- return false;
- if( spaceBetween(second,hour) < (14400 - threshold))
- return false;
- return true;
- }
- void advance(){
- hour += 1;
- if(hour == 43200)
- hour = 0;
- minute += 12;
- if(minute == 43200)
- minute = 0;
- second += 720;
- if(second == 43200)
- second = 0;
- }
- bool isNoon(){
- if (hour == 0)
- return true;
- return false;
- }
- void print(){
- cout << hour << ":" << minute << ":" << second << endl;
- cout << "Which would read on a clock as: " << endl;
- cout << hour / 3600 << ":" << minute / 720 << ":" << second / 720 << endl;
- cout << "Threshold: " << threshold << endl;
- }
- void upThreshold(){
- threshold++;
- }
- int spaceBetween(int one, int two){
- if( (one - two) == 0)
- return 0;
- else if ( (one - two) > 0){
- if ( (one - two) <= 21600)
- return one - two;
- else
- return 43200 - (one - two);
- }
- else if ( (one - two) < 0){
- if ( (one - two) >= - 21600)
- return abs(one - two);
- else
- return 43200 - abs(one - two);
- }
- }
- };
- int main() {
- Clock time;
- while(!time.checkSpace()){
- if(time.isNoon())
- time.upThreshold();
- time.advance();
- }
- time.print();
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement