comparison src/core/date.cpp @ 11:fc1bf97c528b

*: use C++11 standard I've been meaning to do this for a while, but I didn't want to reimplement the filesystem code. Now we are on C++11 and most compilers from the past 5 centuries should support this now
author Paper <mrpapersonic@gmail.com>
date Sun, 17 Sep 2023 06:14:30 -0400
parents 4b198a111713
children cde8f67a7c7d
comparison
equal deleted inserted replaced
10:4b198a111713 11:fc1bf97c528b
29 29
30 Date::Date() { 30 Date::Date() {
31 } 31 }
32 32
33 Date::Date(int32_t y) { 33 Date::Date(int32_t y) {
34 year = std::make_unique<int32_t>(MAX(0, y)); 34 SetYear(y);
35 } 35 }
36 36
37 Date::Date(int32_t y, int8_t m, int8_t d) { 37 Date::Date(int32_t y, int8_t m, int8_t d) {
38 year = std::make_unique<int32_t>(MAX(0, y)); 38 SetYear(y);
39 month = std::make_unique<int8_t>(CLAMP(m, 1, 12)); 39 SetMonth(m);
40 day = std::make_unique<int8_t>(CLAMP(d, 1, 31)); 40 SetDay(d);
41 } 41 }
42 42
43 void Date::VoidYear() { 43 void Date::VoidYear() {
44 year.reset(); 44 year.reset();
45 } 45 }
51 void Date::VoidDay() { 51 void Date::VoidDay() {
52 day.reset(); 52 day.reset();
53 } 53 }
54 54
55 void Date::SetYear(int32_t y) { 55 void Date::SetYear(int32_t y) {
56 year = std::make_unique<int32_t>(MAX(0, y)); 56 year.reset(new int32_t(MAX(0, y)));
57 } 57 }
58 58
59 void Date::SetMonth(int8_t m) { 59 void Date::SetMonth(int8_t m) {
60 month = std::make_unique<int8_t>(CLAMP(m, 1, 12)); 60 month.reset(new int8_t(CLAMP(m, 1, 12)));
61 } 61 }
62 62
63 void Date::SetDay(int8_t d) { 63 void Date::SetDay(int8_t d) {
64 day = std::make_unique<int8_t>(CLAMP(d, 1, 31)); 64 day.reset(new int8_t(CLAMP(d, 1, 31)));
65 } 65 }
66 66
67 int32_t Date::GetYear() const { 67 int32_t Date::GetYear() const {
68 int32_t* ptr = year.get(); 68 int32_t* ptr = year.get();
69 if (ptr != nullptr) 69 if (ptr != nullptr)