From 85bc6c9363a94e360545c7c7d1af52a8bcb1d957 Mon Sep 17 00:00:00 2001 From: VaclavT Date: Mon, 23 Aug 2021 18:14:26 +0200 Subject: [PATCH] faster date processing by reusing string stream --- ml_date.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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'