From 91dda1bb3c6b41d1aa142affed77758e6022d92c Mon Sep 17 00:00:00 2001 From: Maximilien Siavelis <maximilien.siavelis@simulease.com> Date: 周日, 07 1月 2018 20:01:32 +0800 Subject: [PATCH] fix header consistency --- src/library/base/StringUtils.cpp | 40 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/library/base/StringUtils.cpp b/src/library/base/StringUtils.cpp index 7cd274b..97675b7 100644 --- a/src/library/base/StringUtils.cpp +++ b/src/library/base/StringUtils.cpp @@ -2,14 +2,20 @@ * StringUtils.cpp * * Created on: Apr 8, 2014 - * Author: devel + * */ #include <cctype> //toupper #include "StringUtils.h" #include <iostream> #include <string> +#include <cstring> #include <algorithm> +#include <stdexcept> + +#ifdef _WIN32 +#include <time.h> //mktime under windows +#endif namespace license { using namespace std; @@ -28,8 +34,38 @@ string toupper_copy(const string& lowercase) { string cp(lowercase); - std::transform(cp.begin(), cp.end(), cp.begin(), (int(*)(int))toupper); + std::transform(cp.begin(), cp.end(), cp.begin(), (int (*)(int))toupper); return cp; } +time_t seconds_from_epoch(const char* timeString) { + int year, month, day; + tm tm; + if (strlen(timeString) == 8) { + int nfield = sscanf(timeString, "%4d%2d%2d", &year, &month, &day); + if (nfield != 3) { + throw invalid_argument("Date not recognized"); + } + } else if (strlen(timeString) == 10) { + int nfield = sscanf(timeString, "%4d-%2d-%2d", &year, &month, &day); + if (nfield != 3) { + int nfield = sscanf(timeString, "%4d/%2d/%2d", &year, &month, &day); + if (nfield != 3) { + throw invalid_argument("Date not recognized"); + } + } + } else{ + throw invalid_argument("Date not recognized"); + } + tm.tm_isdst = -1; + tm.tm_year = year - 1900; + tm.tm_mon = month - 1; + tm.tm_mday = day; + tm.tm_hour = 0; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_yday = -1; + tm.tm_wday = -1; + return mktime(&tm); +} } /* namespace license */ -- Gitblit v1.9.1