From 0ab40dc1ab4e689921da54080b135e1d22b1c586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?louiz=E2=80=99?= Date: Tue, 14 Mar 2017 21:45:23 +0100 Subject: Refactoring louloulibs and cmake Use OBJECT libraries Remove the louloulibs directory Write FOUND variables in the cache --- louloulibs/utils/time.cpp | 70 ----------------------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 louloulibs/utils/time.cpp (limited to 'louloulibs/utils/time.cpp') diff --git a/louloulibs/utils/time.cpp b/louloulibs/utils/time.cpp deleted file mode 100644 index e9f3943..0000000 --- a/louloulibs/utils/time.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include - -#include -#include -#include - -#include "louloulibs.h" - -namespace utils -{ -std::string to_string(const std::time_t& timestamp) -{ - constexpr std::size_t stamp_size = 21; - char date_buf[stamp_size]; - if (std::strftime(date_buf, stamp_size, "%FT%TZ", std::gmtime(×tamp)) != stamp_size - 1) - return ""; - return {std::begin(date_buf), std::end(date_buf) - 1}; -} - -std::time_t parse_datetime(const std::string& stamp) -{ - static const char* format = "%Y-%m-%dT%H:%M:%S"; - std::tm t = {}; -#ifdef HAS_GET_TIME - std::istringstream ss(stamp); - ss.imbue(std::locale("C")); - - std::string timezone; - ss >> std::get_time(&t, format) >> timezone; - if (ss.fail()) - return -1; -#else - /* Y - m - d T H : M : S */ - constexpr std::size_t stamp_size_without_tz = 4 + 1 + 2 + 1 + 2 + 1 + 2 + 1 + 2 + 1 + 2; - if (!strptime(stamp.data(), format, &t)) { - return -1; - } - const std::string timezone(stamp.data() + stamp_size_without_tz); -#endif - - if (timezone.empty()) - return -1; - - if (timezone.compare(0, 1, "Z") != 0) - { - std::stringstream tz_ss; - tz_ss << timezone; - int multiplier = -1; - char prefix; - int hours; - char sep; - int minutes; - tz_ss >> prefix >> hours >> sep >> minutes; - if (tz_ss.fail()) - return -1; - if (prefix == '-') - multiplier = +1; - else if (prefix != '+') - return -1; - - t.tm_hour += multiplier * hours; - t.tm_min += multiplier * minutes; - } - return ::timegm(&t); -} - -} - - -- cgit v1.2.3