-
Notifications
You must be signed in to change notification settings - Fork 0
/
Hora.cpp
103 lines (92 loc) · 1.69 KB
/
Hora.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//
// Hora.cpp
// Aeropuerto
//
// Created by Daniel on 01/11/14.
// Copyright (c) 2014 Gotomo. All rights reserved.
//
#include "Hora.h"
Hora::Hora(){
hour =0;
minutes = 0;
}
Hora::Hora(int ñ){
std::string ho;
std::string temp;
std::cin>>ho;
for(int i = 0;i < 2; i++){
temp += ho[i];
}
hour = atoi(temp.c_str());
temp = "";
for (int j = 2; j< 4; j++) {
temp += ho[j];
}
minutes = atoi(temp.c_str());
}
Hora::Hora(std::string ho){
std::string temp;
for(int i = 0;i < 2; i++){
temp += ho[i];
}
hour = atoi(temp.c_str());
temp = "";
for (int j = 2; j< 4; j++) {
temp += ho[j];
}
minutes = atoi(temp.c_str());
if (minutes > 60){
minutes = 60;
}
if(hour > 24){
hour = 24;
}
}
bool Hora::operator<(Hora & h){
if (this->hour < h.hour) {
return true;
}
else if((this->hour == h.hour) && (this->minutes < h.minutes)){
return true;
}
return false;
}
bool Hora::operator<=(int i){
if(hour < i){
return true;
}
else if(hour == i){
return minutes <= i;
}
return false;
}
Hora Hora::operator-(int s){
int m = minutes - s;
if(m < 0){
hour--;
minutes = 60 + m;
}
else{
minutes = m;
}
return *this;
}
Hora Hora::operator+(int s){
this->minutes += s;
if(minutes > 60){
hour += 1;
minutes -= 60;
}
return *this;
}
std::ostream & operator <<(std::ostream & os, Hora & h){
if(h.hour < 10){
os << "0";
}
os << h.hour << ":";
if (h.minutes < 10) {
os << "0";
}
os << h.minutes;
return os;
}