c++ 标准 字符串转换为时间 时间大小比较 判断有效期 简洁办法
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++ 标准 字符串转换为时间 时间大小比较 判断有效期 简洁办法的更多相关文章
- PHP用strtotime()函数比较两个时间的大小实例详解
在PHP开发中,我们经常会对两个时间的大小进行判断,但是,在PHP中,两个时间是不可以直接进行比较,因为时间是由年.月.日.时.分.秒组成的,所以,如果需要将两个时间进行比较的话,我们首先要做的就是将 ...
- JSON字符串转换为JSON对象
一.JSON字符串转换为JSON对象 A:eval函数 eval函数可以直接将本质符合或者近似符合JSON格式的字符串转换为JSON对象,使用方式如: eval('(' + str + ')'); / ...
- Java字符串转换为日期和时间比较大小
字符串转换为时间: String data = "2014/7/11"; SimpleDateFormat dfs = new SimpleDateFormat("yyy ...
- postgresql数据库的 to_date 和 to_timestamp 将 字符串转换为时间格式
数据库中:字符串 转换为 时间格式 二者区别: to_data 转换为 普通的时间格式 to_timestamp 转换可为 时间戳格式出错场景: 比较同一天 日期大小的时候,很容易出错 ...
- Python 将一个已知的 utc时间字符串 转换为东八区时间
先获取一个utc格式的时间 utc_time = datetime.datetime.utcnow() print(utc_time) 输出 2018-06-24T08:59:39Z 这里我们假设目前 ...
- 将UTC日期字符串转为本地时间字符串,如@"yyyy-MM-dd'T'HH:mm:ssZ"转换为本地时间
由于苹果商店上线应用24小时内会不稳定,更新提醒可能会陷入死循环,更新提醒需要24小时后弹出,需要把苹果返回的上线时间转换为本地时间故写了下边的方法: //将UTC日期字符串转为本地时间字符串//输入 ...
- 使用Python将字符串转换为格式化的日期时间字符串
我正在尝试将字符串“20091229050936”转换为“2009年12月29日(UTC)” >>>import time >>>s = time.strptime ...
- java将字符串转换为指定的时间格式
*String dateString = "18:31:43"; try { Date date = new SimpleDateFormat("HH:mm ...
- Python学习笔记9:标准库之日期时间(time包,datetime包)
一 time包 sleep([float time]) 延迟一段以浮点数表示的秒数 time包基于C语言的库函数(library functions). Python的解释器一般是用C编写的,Pyth ...
随机推荐
- C++ 谓词(predicate) 与 仿函数 ( functor (function object))
谓词与函数对象 谓词 predicate C++ 标准定义谓词如下: The Predicate parameter is used whenever an algorithm expects a f ...
- GCC使用总结
概念 GCC一开始是linux系统集成的用来编译C程序的编译器(GNU C Compiler),目前GCC已经不仅仅支持C语言了,因而其缩写名单意义也变成(GNU Compiler Collectio ...
- C++(四十)— C++中一个class类对象占用多少内字节
一个空的class在内存中多少字节?如果加入一个成员函数后是多大?这个成员函数存储在内存中什么部分? 一个Class对象需要占用多大的内存空间.最权威的结论是: 非静态成员变量总合. 加上编译器为了C ...
- yum 异常解决一例
http://mirrors.cloud.aliyuncs.com/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 ...
- 均分纸牌(Noip2002)
1320:[例6.2]均分纸牌(Noip2002) 时间限制: 1000 ms 内存限制: 65536 KB提交数: 3537 通过数: 1839 [题目描述] 有n堆纸牌,编 ...
- 用python爬取全网妹子图片【附源码笔记】
这是晚上没事无聊写的python爬虫小程序,专门爬取妹子图的,养眼用的,嘻嘻!身为程序狗只会这个了! 废话不多说,代码附上,仅供参考学习! """ 功能:爬取妹子图全网妹 ...
- CH6303 天天爱跑步
6303 天天爱跑步 0x60「图论」例题 描述 小C同学认为跑步非常有趣,于是决定制作一款叫作<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成 ...
- NET Framework 的泛型
NET Framework 的泛型 泛型是具有占位符(类型参数)的类.结构.接口和方法,这些占位符是类.结构.接口和方法所存储或使用的一个或多个类型的占位符.泛型集合类可以将类型参数用作它所存储的对象 ...
- linux下MySQL的启动与访问
启动与停止 1.启动 MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可. [root@test1 init.d]# /etc/init.d/mysql ...
- 2019.11.29 Mysql的数据操作
为名为name的表增加数据(插入所有字段) insert into name values(1,‘张三’,‘男’,20); 为名为name的表增加数据(插入部分字段) insert into name ...