diff --git a/src/Datafile.cpp b/src/Datafile.cpp index cbb22a49..ed9a96a8 100644 --- a/src/Datafile.cpp +++ b/src/Datafile.cpp @@ -26,12 +26,23 @@ #include #include +#include #include +#include //////////////////////////////////////////////////////////////////////////////// void Datafile::initialize (const std::string& name) { _name = name; + + // From the name, which is of the form YYYY-MM.data, extract the YYYY and MM. + auto basename = File (_name).name (); + auto year = strtol (basename.substr (0, 4).c_str (), NULL, 10); + auto month = strtol (basename.substr (5, 2).c_str (), NULL, 10); + + // Construct two dates that + _day1 = Datetime (month, 1, year, 0 , 0, 0); + _dayN = Datetime (month, Datetime::daysInMonth (year, month), year, 23, 59, 59); } //////////////////////////////////////////////////////////////////////////////// @@ -79,8 +90,10 @@ void Datafile::commit () std::string Datafile::dump () const { std::stringstream out; - out << "Datafile\n"; - out << " Name: " << _name << "\n"; + out << "Datafile\n" + << " Name: " << _name << "\n" + << " day1: " << _day1.toISO () << "\n" + << " dayN: " << _dayN.toISO () << "\n"; return out.str (); } diff --git a/src/Datafile.h b/src/Datafile.h index 850aa701..786f5a5f 100644 --- a/src/Datafile.h +++ b/src/Datafile.h @@ -51,6 +51,8 @@ public: private: std::string _name {}; bool _dirty {false}; + Datetime _day1 {0}; + Datetime _dayN {0}; }; #endif