diff --git a/ml_date.cpp b/ml_date.cpp index e6ff561..834afd3 100644 --- a/ml_date.cpp +++ b/ml_date.cpp @@ -23,15 +23,19 @@ std::string date_to_string(const long datetime, const std::string format) { return "invalid argument"; } +std::istringstream string_to_date_in_ss; long string_to_date(const std::string &datestr, const std::string &format) { // format for example "%d.%m.%Y"; - std::istringstream in{datestr.c_str()}; + string_to_date_in_ss.clear(); + string_to_date_in_ss.str(datestr); + date::sys_seconds tp; - in >> date::parse(format, tp); + date::from_stream(string_to_date_in_ss, format.c_str(), tp); return tp.time_since_epoch().count(); } + long add_to_date(const long datetime, const long quantity, const std::string &part) { // part is one of 'year', 'month', 'day', 'hour', 'minute' or 'second'