-
Notifications
You must be signed in to change notification settings - Fork 0
/
Date.hpp
67 lines (58 loc) · 2.15 KB
/
Date.hpp
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
#ifndef DATE_H_INCLUDED
#define DATE_H_INCLUDED
#include <string>
#include "Formato.h"
#include "ExecaoCustomizada.h"
//Constantes de Conversao
#define YEAR_TO_SECONDS 31536000
#define DAY_TO_SECONDS 86400
#define HOURS_TO_SECONDS 3600
#define MINUTE_TO_SECONDS 60
using namespace std;
class Date {
private:
int ano;
int mes;
int dia;
int hora;
int minuto;
int segundo;
long ticks; //Segundos desde 00:00:00 01/01/1970
Formato formatoData;
void ticksToDate();
void dateToTicks();
public:
Date(); //Construtor default(PT-BR)
Date(Formato valFormato); //Construtor default de formato de data especifico
Date(int valAno, int valMes, int valDia, int valHora=0, int valMin=0, int valSeg=0); //Construtor com argumentos e formato default
Date(long valTicks); //Construtor a partir de ticks
virtual ~Date(); //Destrutor
bool operator==(Date &d2); //Sobrecarga do operador de comparacao eq
bool operator<(Date &d2); //Sobrecarga do operador de comparacao lt
bool operator>(Date &d2); //Sobrecarga do operator de comparacao gt
Date operator-(Date &d2); //Sobrecarga do operador de subtracao
//Metodos get:
int getAno();
int getMes();
int getDia();
int getHora();
int getMin();
int getSeg();
long getTicks();
string getFormato();
//Metodos set:
void setAno(int valAno);
void setMes(int valMes);
void setDia(int valDia);
void setHora(int valHora);
void setMin(int valMin);
void setSeg(int valSeg);
void setTicks(long valTicks);
void setFormato(Formato valFormato);
bool validaData(); //Verifica se todos os valores dos atributos estao dentro dos limites possiveis
static Date dateNow(); //Retorna a data do presente momento
void printData(); //Imprime a data na tela de acordo com o formato ja atribuido
string getData(); //Retorna a data no formato de string
int diffData(Date); // Retorna a diferença entre duas datas em dias
};
#endif // DATA_H_INCLUDED