91 lines
2.3 KiB
C
91 lines
2.3 KiB
C
|
|
|
|||
|
|
|
|||
|
|
#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 <chrono>
|
|||
|
|
#include <cmath>
|
|||
|
|
#include <fstream>
|
|||
|
|
#include <iomanip>
|
|||
|
|
#include <iostream>
|
|||
|
|
#include <nlohmann/json.hpp>
|
|||
|
|
#include <sstream>
|
|||
|
|
#include <filesystem> // 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
|