-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata.h
68 lines (51 loc) · 1.53 KB
/
data.h
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
#ifndef DATA_H
#define DATA_H
#include<iostream>
#include<vector>
#include<string>
#include "utilities.h"
#include <iostream>
#include <chrono>
#include <ctime>
#include "outofboundexception.h"
#include<sstream>
#include<stdexcept>
using std::vector;
using std::cout;
using std::endl;
using std::string;
using std::stoi; //conversione string->int
class Data;
std::ostream& operator<<(std::ostream&, const Data&);
class Data
{
friend std::ostream& operator<<(std::ostream&, const Data&);
private:
unsigned short int _giornoCorrente;
unsigned short int _meseCorrente;
unsigned short int _annoCorrente;
static unsigned short int _maxMesi;
static unsigned short int _minMesi;
static unsigned short int _minAnni;
static unsigned short int _maxAnni;
static unsigned short int _minGiorni;
unsigned short int _maxGiorni;
bool isBisestile() const;
void setMaxGiorni();
void checkLimiti();
void aggiustaLimiti();
void parsingDaStringa(string inputString);
public:
Data(string inputString);
Data(unsigned short int=1,unsigned short int=1,unsigned short int=1980);
string dataToString() const;
Data operator+(unsigned short int) const;
int operator+(const Data&) const;
int differenza(const Data&) const;
bool operator<(const Data&) const;
bool operator>(const Data&) const;
bool operator==(const Data&) const;
bool operator !=(const Data&) const;
static Data unixDateToData(const std::chrono::time_point<std::chrono::system_clock>&);
};
#endif // DATA_H