some small refactoring

This commit is contained in:
VaclavT 2021-12-19 13:34:29 +01:00
parent 5c925f2608
commit 8ea91f255b
5 changed files with 49 additions and 52 deletions

View File

@ -2,8 +2,8 @@
#include "ml_date.h" #include "ml_date.h"
long now() { // get-universal-time long now() { // get-universal-time
time_t t = std::time(0); time_t t = std::time(nullptr);
long int now = static_cast<long int>(t); auto now = static_cast<long int>(t);
return now; return now;
} }
@ -16,7 +16,7 @@ long get_gmt_localtime_offset() {
return offset; return offset;
} }
std::string date_to_string(const long datetime, const std::string format) { std::string date_to_string(const long datetime, const std::string& format) {
// std::locale::global(std::locale("en-US.UTF8")); // std::locale::global(std::locale("en-US.UTF8"));
time_t timestamp = datetime; time_t timestamp = datetime;
@ -27,7 +27,7 @@ std::string date_to_string(const long datetime, const std::string format) {
return result; return result;
} }
throw std::runtime_error("date_to_string invalid date string or format"); throw std::runtime_error("date_to_string, invalid date string or format (" + std::to_string(datetime) + ", " + format + ")" );
} }
time_t time_to_epoch ( const struct tm *ltm, int utcdiff ) { time_t time_to_epoch ( const struct tm *ltm, int utcdiff ) {
@ -37,12 +37,11 @@ time_t time_to_epoch ( const struct tm *ltm, int utcdiff ) {
31+28+31+30+31+30+31+31+30+31, 31+28+31+30+31+30+31+31+30+31+30, 31+28+31+30+31+30+31+31+30+31+30+31}; 31+28+31+30+31+30+31+31+30+31, 31+28+31+30+31+30+31+31+30+31+30, 31+28+31+30+31+30+31+31+30+31+30+31};
long tyears, tdays, leaps, utc_hrs; long tyears, tdays, leaps, utc_hrs;
int i;
tyears = ltm->tm_year - 70 ; // tm->tm_year is from 1900. tyears = ltm->tm_year - 70 ; // tm->tm_year is from 1900.
leaps = (tyears + 2) / 4; leaps = (tyears + 2) / 4;
// no of next two lines until year 2100. // no of next two lines until year 2100.
//i = (ltm->tm_year 100) / 100; //int i = (ltm->tm_year 100) / 100;
//leaps -= ( (i/4)*3 + i%4 ); //leaps -= ( (i/4)*3 + i%4 );
tdays = mon_days[ltm->tm_mon]; tdays = mon_days[ltm->tm_mon];
@ -57,7 +56,7 @@ time_t time_to_epoch ( const struct tm *ltm, int utcdiff ) {
long string_to_date(const std::string &datestr, const std::string &format) { long string_to_date(const std::string &datestr, const std::string &format) {
// format for example "%d.%m.%Y"; // format for example "%d.%m.%Y";
struct tm tm; struct tm tm{};
memset(&tm, 0, sizeof(tm)); memset(&tm, 0, sizeof(tm));
if (strptime(datestr.c_str(), format.c_str(), &tm)) { if (strptime(datestr.c_str(), format.c_str(), &tm)) {
time_t curTime; time_t curTime;
@ -76,11 +75,11 @@ long string_to_date(const std::string &datestr, const std::string &format) {
return time_to_epoch(timeinfo, 0); return time_to_epoch(timeinfo, 0);
} }
throw std::runtime_error("invalid date string or format (" + datestr + ", " + format + ")" ); throw std::runtime_error("string_to_date, invalid date string or format (" + datestr + ", " + format + ")" );
} }
long add_to_date(const long datetime, const long quantity, const std::string &part) { long add_to_date(const long datetime, const int quantity, const std::string &part) {
// part is one of 'year', 'month', 'day', 'hour', 'minute' or 'second' // part is one of 'year', 'month', 'day', 'hour', 'minute' or 'second'
// very basic implementation, just for now - no timezones DST etc // very basic implementation, just for now - no timezones DST etc
@ -100,7 +99,7 @@ long add_to_date(const long datetime, const long quantity, const std::string &pa
} else if (part == "second") { } else if (part == "second") {
tm->tm_sec += quantity; tm->tm_sec += quantity;
} else { } else {
// TODO exception here throw std::runtime_error("add_to_date, part to add (" + part + ")" );
} }
return mktime(tm); // mktime is quite slow! return mktime(tm); // mktime is quite slow!

View File

@ -11,9 +11,9 @@ long now();
long get_gmt_localtime_offset(); long get_gmt_localtime_offset();
std::string date_to_string(const long datetime, const std::string format); std::string date_to_string(const long datetime, const std::string &format);
long string_to_date(const std::string &datestr, const std::string &format); long string_to_date(const std::string &datestr, const std::string &format);
long add_to_date(const long datetime, const long quantity, const std::string &part); long add_to_date(const long datetime, const int quantity, const std::string &part);

View File

@ -55,19 +55,17 @@ bool is_path_file(const std::string &path) {
} }
bool is_path_dir(const std::string &path) { bool is_path_dir(const std::string &path) {
struct stat buf; struct stat buf{};
stat(path.c_str(), &buf); stat(path.c_str(), &buf);
return (bool) S_ISDIR(buf.st_mode); return (bool) S_ISDIR(buf.st_mode);
} }
int mk_path_dir(const std::string &path) { int mk_path_dir(const std::string &path) {
int r = ::mkdir(path.c_str(), 0755); return ::mkdir(path.c_str(), 0755);
return r;
} }
int rm_path_dir(const std::string &path) { int rm_path_dir(const std::string &path) {
int r = ::rmdir(path.c_str()); return ::rmdir(path.c_str());
return r;
} }
MlValue exec_system_cmd(const std::string &cmd) { MlValue exec_system_cmd(const std::string &cmd) {

View File

@ -81,7 +81,7 @@ std::vector<std::vector<std::string>> regexp_tokens(const std::string &str, cons
captured_subgroups.push_back(res[i]); captured_subgroups.push_back(res[i]);
} }
} }
if (captured_subgroups.size() > 0) if (!captured_subgroups.empty())
captured_groups.push_back(captured_subgroups); captured_groups.push_back(captured_subgroups);
searchStart += res.position() + res.length(); searchStart += res.position() + res.length();
@ -119,7 +119,7 @@ std::string string_trim(std::string s, const std::string &chars_to_trim, const s
} }
std::string string_padd(const std::string &str, int pad_len, char fill_char, bool from_right) { std::string string_padd(const std::string &str, int pad_len, char fill_char, bool from_right) {
int str_len = str.length(); auto str_len = str.length();
if (str_len == pad_len) if (str_len == pad_len)
return str; return str;