-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDate.cpp
83 lines (65 loc) · 1.45 KB
/
Date.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
#include "Date.h"
static const char SEPARATOR { '/' };
/**
Constructeur par défaut qui initialise la date au 01/01/1900.
*/
Date::Date() :
d_day { 1 },
d_month { 1 },
d_year { 1900 }
{}
/**
Constructeur avec paramètres qui initialise la date au day/month/year.
*/
Date::Date(int day, int month, int year) :
d_day { day },
d_month { month },
d_year { year }
{}
/**
Destructeur de l'objet Date.
*/
Date::~Date() {
}
/**
Affiche la Date sur un flux de sortie.
Si le jour ou le mois est inférieur à 10, on rajoute un 0.
@param[out] ost - un flux de sortie.
*/
void Date::display(std::ostream& ost) const {
if (d_day < 10) ost << '0' << d_day;
else ost << d_day;
ost << SEPARATOR;
if (d_month < 10) ost << '0' << d_month;
else ost << d_month;
ost << SEPARATOR;
ost << d_year;
}
/**
Lis une date depuis un flux d'entrée.
@param[out] ist - un flux d'entrée.
*/
void Date::read(std::istream& ist) {
char k;
ist >> d_day >> k >> d_month >> k >> d_year;
}
/**
Surcharge de l'opérateur '<<'
@param[out] ost - un flux de sortie ;
@param[in] d - une Date.
@return ost - le flux de sortie.
*/
std::ostream& operator<<(std::ostream& ost, const Date& d) {
d.display(ost);
return ost;
}
/**
Surcharge de l'opérateur '>>'
@param[out] ist - un flux d'entrée ;
@param[out] d - une Date.
@return ist - le flux d'entrée.
*/
std::istream& operator>>(std::istream& ist, Date& d) {
d.read(ist);
return ist;
}