#pragma once /** * @file utility.h * @brief 时间工具函数 * @author your name (you@domain.com) * @version 0.1 * @date 2023-12-22 * * Copyright: Baosight Co. Ltd. * DO NOT COPY/USE WITHOUT PERMISSION * */ #include #include #include #include #include #include #include #include // C++17 文件系统库 namespace fs = std::filesystem; // 简化命名空间 using namespace std::chrono; using std::chrono::system_clock; using TimePoint = system_clock::time_point; using TimeDur = milliseconds; namespace UtilityTools { using json = nlohmann::json; /** * @brief 时间转当日凌晨时间 * @param time_point My Param doc * @return TimePoint */ TimePoint time_point2zero(TimePoint time_point); /** * @brief 时间点 转 时间戳秒 (当日凌晨) * @param time_point My Param doc * @return int */ int time_point2second_zero(TimePoint time_point); /** * @brief 时间戳秒 转 时间点 * @param seconds My Param doc * @return TimePoint */ TimePoint second_zero2time_point(int seconds); TimePoint millsecond_zero2time_point(int64_t millseconds); /** * @brief 时间差 天 * @param stime My Param doc * @param etime My Param doc * @return int */ int diff_days(TimePoint stime, TimePoint etime); /** * @brief str时间转chrono时间 * @param date My Param doc * @param fmt My Param doc * @return TimePoint */ TimePoint string2TimePoint(std::string date, const std::string &fmt = "%Y-%m-%d %H:%M:%S"); /** * @brief 保存json文件 * @param path_ruleid My Param doc * @param file_name_date My Param doc * @param content My Param doc * @param root_dir My Param doc * @return int * @return 0--保存成功;1--文件已存在;-1--保存异常 */ int save_json_file(std::string path_ruleid,std::string file_name_date, json content, std::string root_dir = "/dscdata/RuleNormData"); /** * @brief json文件读取到 json * @param file_path My Param doc * @param sjson My Param doc * @return true * @return false */ bool jsonReader(std::string file_path, json &sjson); bool create_path(std::string path); bool is_file_exists(std::string file_path); } // namespace UtilityTools