#include <iostream>
class Date {
public:
Date(int y, int m, int d)
:y_ {y}, m_ {m}, d_ {d}
{
}
std::string to_s() {
return std::to_string(y_) + '-' +
std::to_string(m_) + '-' +
std::to_string(d_);
}
Date& operator+=(Date other) {
y_ += other.y_;
m_ += other.m_;
d_ += other.d_;
return *this;
}
private:
int y_, m_, d_;
};
Date Day(int d) {
return Date(0, 0, d);
}
int main() {
Date d {2018, 01, 03};
std::cout << d.to_s() << '\n';
d += Day(1);
std::cout << d.to_s() << '\n';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgRGF0ZSB7CnB1YmxpYzoKCURhdGUoaW50IHksIGludCBtLCBpbnQgZCkKCTp5XyB7eX0sIG1fIHttfSwgZF8ge2R9Cgl7Cgl9CgkKCXN0ZDo6c3RyaW5nIHRvX3MoKSB7CgkJcmV0dXJuIHN0ZDo6dG9fc3RyaW5nKHlfKSArICctJyArCgkJCXN0ZDo6dG9fc3RyaW5nKG1fKSArICctJyArCgkJCXN0ZDo6dG9fc3RyaW5nKGRfKTsKCX0KCQoJRGF0ZSYgb3BlcmF0b3IrPShEYXRlIG90aGVyKSB7CgkJeV8gKz0gb3RoZXIueV87CgkJbV8gKz0gb3RoZXIubV87CgkJZF8gKz0gb3RoZXIuZF87CgkJCgkJcmV0dXJuICp0aGlzOwoJfQoJCnByaXZhdGU6CglpbnQgeV8sIG1fLCBkXzsKfTsKCkRhdGUgRGF5KGludCBkKSB7CglyZXR1cm4gRGF0ZSgwLCAwLCBkKTsKfQoKaW50IG1haW4oKSB7CglEYXRlIGQgezIwMTgsIDAxLCAwM307CglzdGQ6OmNvdXQgPDwgZC50b19zKCkgPDwgJ1xuJzsKCWQgKz0gRGF5KDEpOwoJc3RkOjpjb3V0IDw8IGQudG9fcygpIDw8ICdcbic7CglyZXR1cm4gMDsKfQ==