Files
geant4/source/externals/g4tools/include/tools/s2time
T
2022-07-01 10:44:02 +02:00

42 lines
866 B
Plaintext

// Copyright (C) 2010, Guy Barrand. All rights reserved.
// See the file tools.license for terms.
#ifndef tools_s2time
#define tools_s2time
#include <ctime>
#include <string>
#include <cstdio> //sscanf
namespace tools {
inline bool s2time(const std::string& a_string,time_t& a_time) {
int yy, _mm, dd, hh, mi, ss;
if(::sscanf(a_string.c_str(),
"%d-%d-%d %d:%d:%d",
&yy,&_mm,&dd,&hh,&mi,&ss)!=6) {a_time = 0;return false;}
struct tm tp;
tp.tm_year = yy-1900;
tp.tm_mon = _mm-1;
tp.tm_mday = dd;
tp.tm_hour = hh;
tp.tm_min = mi;
tp.tm_sec = ss;
tp.tm_isdst = 0;
a_time = ::mktime(&tp);
return true;
}
inline bool time2s(std::string& a_s) {
time_t d;
if(::time(&d)==(time_t)-1) {a_s.clear();return false;}
char* _cstr = ::ctime(&d);
_cstr[24] = '\0';
a_s = _cstr;
return true;
}
}
#endif