MCPcopy Create free account
hub / github.com/catboost/catboost / TDate

Class TDate

util/draft/date.h:15–88  ·  view source on GitHub ↗

Local date (without time zone)

Source from the content-addressed store, hash-verified

13
14// Local date (without time zone)
15class TDate {
16 // XXX: wrong: must store number of days since epoch
17 time_t Timestamp;
18
19public:
20 TDate()
21 : Timestamp(0)
22 {
23 }
24
25 // XXX: wrong. Should be replace with two methods: TodayGmt() and TodayLocal()
26 static TDate Today() {
27 return TDate(time(nullptr));
28 }
29
30 TDate(const char* yyyymmdd);
31 TDate(const TString& yyyymmdd);
32 TDate(unsigned year, unsigned month, unsigned monthDay); // month from 01, monthDay from 01
33 TDate(const TString& date, const TString& format);
34
35 explicit TDate(time_t t);
36
37 time_t GetStart() const {
38 return Timestamp;
39 }
40
41 time_t GetStartUTC() const;
42
43 TString ToStroka(const char* format = "%Y%m%d") const;
44
45 TDate& operator++() {
46 Timestamp = GetDateStart(Timestamp + 3 * (SECONDS_IN_DAY / 2));
47 return *this;
48 }
49
50 TDate& operator--() {
51 Timestamp = GetDateStart(Timestamp - SECONDS_IN_DAY / 2);
52 return *this;
53 }
54
55 TDate& operator+=(unsigned days) {
56 Timestamp = GetDateStart(Timestamp + days * SECONDS_IN_DAY + SECONDS_IN_DAY / 2);
57 return *this;
58 }
59
60 TDate& operator-=(unsigned days) {
61 Timestamp = GetDateStart(Timestamp - days * SECONDS_IN_DAY + SECONDS_IN_DAY / 2);
62 return *this;
63 }
64
65 TDate operator+(unsigned days) const {
66 return TDate(Timestamp + days * SECONDS_IN_DAY + SECONDS_IN_DAY / 2);
67 }
68
69 TDate operator-(unsigned days) const {
70 return TDate(Timestamp - days * SECONDS_IN_DAY + SECONDS_IN_DAY / 2);
71 }
72

Callers 4

TodayMethod · 0.85
operator+Method · 0.85
operator-Method · 0.85
FromStringImpl<TDate>Function · 0.85

Calls 1

GetDateStartFunction · 0.85

Tested by

no test coverage detected