c++ 标准 字符串转换为时间 时间大小比较 判断有效期 简洁办法

时间:2023-02-09 19:40:23

c# php delphi java 等各种语言 对字符串转换为日期 然后与当前日期进行比较 是非常容易的 因为有现成的函数可用

标准 c++ 硬是找不到 合适的代码可用

于是

百度了很多 没百出个结果

于是综合网上资料 自己优化了下 直接拿来用 即可

time_t str_to_time_t(const string& ATime, const string& AFormat="%d-%d-%d")
{
struct tm tm_Temp;
time_t time_Ret;
try
{
int i = sscanf(ATime.c_str(), AFormat.c_str(),// "%d/%d/%d %d:%d:%d" ,
&(tm_Temp.tm_year),
&(tm_Temp.tm_mon),
&(tm_Temp.tm_mday),
&(tm_Temp.tm_hour),
&(tm_Temp.tm_min),
&(tm_Temp.tm_sec),
&(tm_Temp.tm_wday),
&(tm_Temp.tm_yday)); tm_Temp.tm_year -= 1900;
tm_Temp.tm_mon --;
tm_Temp.tm_hour=0;
tm_Temp.tm_min=0;
tm_Temp.tm_sec=0;
tm_Temp.tm_isdst = 0;
time_Ret = mktime(&tm_Temp);
return time_Ret;
} catch(...) {
return 0;
}
} time_t NowTime()
{
time_t t_Now = time(0);
struct tm* tm_Now = localtime(&t_Now);
tm_Now->tm_hour =0;
tm_Now->tm_min = 0;
tm_Now->tm_sec = 0;
return mktime(tm_Now);
} bool IsValidTime(const time_t& AEndTime, const time_t& ANowTime )
{
return (AEndTime >= ANowTime);
}
调用方法
string sEndTime ="2013-12-9";
string sTemp;
time_t t_Now = NowTime();
time_t t_End = str_to_time_t(sEndTime);
if (IsValidTime(t_End, t_Now)) {
sTemp = "有效日期";
} else {
sTemp = "时间过期";
}

  

++新增两个通用方法 (新增date(double) to time_t) +time_t to string

string time_t_to_str(const time_t &ATime_t, const string& AFormat="%d-%d-%d")
{
char chRet[];
string sRet;
struct tm *p;
try
{
p = localtime(&ATime_t);
p->tm_year = p->tm_year + ;
p->tm_mon = p->tm_mon + ;
sprintf(chRet, AFormat.c_str(),
p->tm_year, p->tm_mon, p->tm_mday);
sRet = chRet;
return sRet;
} catch(...) {
return "";
}
} time_t date_to_timet( double ADate, bool AClearDecimal= false)
{
if (AClearDecimal){
ADate = int(ADate);
}
return (time_t)((Adate-)*(**)-timezone + 0.5 );
}
// time_t dttime = date_to_timet(41618.9023, true);
[DATE]double(41618)=string("2013-12-10")
 

c++ 标准 字符串转换为时间 时间大小比较 判断有效期 简洁办法的更多相关文章

  1. PHP用strtotime()函数比较两个时间的大小实例详解

    在PHP开发中,我们经常会对两个时间的大小进行判断,但是,在PHP中,两个时间是不可以直接进行比较,因为时间是由年.月.日.时.分.秒组成的,所以,如果需要将两个时间进行比较的话,我们首先要做的就是将 ...

  2. JSON字符串转换为JSON对象

    一.JSON字符串转换为JSON对象 A:eval函数 eval函数可以直接将本质符合或者近似符合JSON格式的字符串转换为JSON对象,使用方式如: eval('(' + str + ')'); / ...

  3. Java字符串转换为日期和时间比较大小

    字符串转换为时间: String data = "2014/7/11"; SimpleDateFormat dfs = new SimpleDateFormat("yyy ...

  4. postgresql数据库的 to_date 和 to_timestamp 将 字符串转换为时间格式

    数据库中:字符串 转换为 时间格式 二者区别: to_data 转换为 普通的时间格式        to_timestamp 转换可为 时间戳格式出错场景: 比较同一天 日期大小的时候,很容易出错 ...

  5. Python 将一个已知的 utc时间字符串 转换为东八区时间

    先获取一个utc格式的时间 utc_time = datetime.datetime.utcnow() print(utc_time) 输出 2018-06-24T08:59:39Z 这里我们假设目前 ...

  6. 将UTC日期字符串转为本地时间字符串,如@"yyyy-MM-dd'T'HH:mm:ssZ"转换为本地时间

    由于苹果商店上线应用24小时内会不稳定,更新提醒可能会陷入死循环,更新提醒需要24小时后弹出,需要把苹果返回的上线时间转换为本地时间故写了下边的方法: //将UTC日期字符串转为本地时间字符串//输入 ...

  7. 使用Python将字符串转换为格式化的日期时间字符串

    我正在尝试将字符串“20091229050936”转换为“2009年12月29日(UTC)” >>>import time >>>s = time.strptime ...

  8. java将字符串转换为指定的时间格式

    *String dateString = "18:31:43";    try {     Date date = new SimpleDateFormat("HH:mm ...

  9. Python学习笔记9:标准库之日期时间(time包,datetime包)

    一 time包 sleep([float time]) 延迟一段以浮点数表示的秒数 time包基于C语言的库函数(library functions). Python的解释器一般是用C编写的,Pyth ...

随机推荐

  1. HTTP传送协议

    HTTP传送协议--学习笔记 HTTP数据传输格式 基本格式为: 请求或应答行 请求或应答头部 空行 数据 POST传送格式 底层数据通信: 客户端请求: POST /response.php HTT ...

  2. jquery节点操作

    很久没有jquery写东西了,最近使用jquery的时候发现很多节点的操作都不太熟悉了,于是就进行了一个小小的总结. 创建节点:var dom=$('<div></div>') ...

  3. MVC的路由

    MVC的路由包括以下几部分 路由名称,路由URL,路由的初始值,路由的约束,路由的命名空间 routes.MapRoute( name: "Default", url: &quot ...

  4. 决策树学习(ID3)

    参考:<机器学习实战> 优点:计算复杂度不高, 输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特 征数据. 缺点:可能会产生过度匹配问题. 适用数据类型:数值型和标称型. 创建分支 ...

  5. 从NIB中加载VIEW

    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ChatMoreView" owner:nil options:nil]; ...

  6. JS——无缝滚动

    1.描述——无缝滚动图片 2.代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  7. linux下载时提示请尝试移除磁盘中不需要的文件并重试,或者保存到其他位置

    因为我是用虚拟机装的linux,所以当时就分配了20G硬盘,下载了几个应用后再下载就提示我这个了.一开始我还以为是因为下载链接的问题,后来才知道原来是因为/tmp的满了. 然后我输入以下连个命令就能正 ...

  8. canvas画图

    这个元素负责在页面中设定一个区域,然后就可以通过JS动态的在这个区域中绘制图形. <canvas>由几组API构成. <canvas>还建议一个名为WebGL的3D上下文 (1 ...

  9. 『Scrapy』终端调用&amp&semi;选择器方法

    Scrapy终端 示例,输入如下命令后shell会进入Python(或IPython)交互式界面: scrapy shell "http://www.itcast.cn/channel/te ...

  10. cv&colon;&colon;Mat到YUV420的转换《转》

    某些特定场合我们会经常遇到yuv420格式的视频文件,这种视频帧无法直接用于opencv,故而,需要进行格式转换:幸运的是,opencv提供了rgb到yuv420的格式转换函数:下面给出基本用法: 函 ...