CTime 的一般常用方法
CTime 初始化
CTime T;
int year;
T=CTime(2016,8,16,8,8,8); //设置时间为2008年8月8号8时8分8秒
//或者 CTime T =CTime::GetCurrentTime(); //设置为当前时间
year=t.GetYear(); //获取年份
CTime 与 CString转换
CTime m_StartTime1 = CTime::GetCurrentTime();
CString csStartTime = m_StartTime1.Format( “%Y%m%d%H%M%S” );
将CString转为CTime
方法一:
CString timestr = “2000年04月05日”;
int a,b,c ;
sscanf(timestr.GetBuffer(timestr.GetLength()),”%d年%d月%d日”,&a,&b,&c);
CTime time(a,b,c,0,0,0);
方法二:
CString s(“2001-8-29 19:06:23”);
int nYear, nMonth, nDate, nHour, nMin, nSec;
sscanf(s, “%d-%d-%d %d:%d:%d”, &nYear, &nMonth, &nDate, &nHour, &nMin, &nSec);
CTime t(nYear, nMonth, nDate, nHour, nMin, nSec);
方法三:
CString timestr = “2000年04月05日”;
int year,month,day;
BYTE tt[5];
//get year
memset(tt, 0, sizeof(tt));
tt[0] = timestr[0];
tt[1] = timestr[1];
tt[2] = timestr[2];
tt[3] = timestr[3];
year= atoi((char *)tt);
//get month
memset(tt, 0, sizeof(tt));
tt[0] = timestr[6];
tt[1] = timestr[7];
month = atoi((char *)tt);
//get day
memset(tt, 0, sizeof(tt));
tt[0] = timestr[10];
tt[1] = timestr[11];
CTime time(year,month,day,0,0,0);
从上面来看,很明显使用sscanf()函数的优势.
将CTIme转换为CString的方法:
CTime tmSCan = CTime::GetCurrentTime();
CString szTime = tmScan.Format(“’%Y-%m-%d %H:%M:%S’”);
这样得到的日期时间字符串就是以”2006-08-16 09:24:59”的格式.这是不是很方便呢?
//取得CTime中的日期
CString cstrDate = tmScan.Format(“%Y-%m-%d”);
//取得CTime中的时间
CString cstrTime = tmScan.Format(“%H:%M-%S”);
sprintf还有个不错的表妹:strftime,专门用于格式化时间字符串的,用法跟她表哥很像,也是一大堆格式控制符,只是毕竟小姑娘家心细,她还要调用者指定缓冲区的最大长度,可能是为了在出现问题时可以推卸责任吧。这里举个例子:
更多更好的sprintf()函数说明参考:《spirntf,你知道多少?》
time_t t = time(0);
//产生”YYYY-MM-DD hh:mm:ss”格式的字符串。
char s[32];
strftime(s, sizeof(s), “%Y-%m-%d %H:%M:%S”, localtime(&t));
sprintf在MFC中也能找到他的知音:CString::Format,strftime在MFC中自然也有她的同道:CTime::Format,这一对由于从面向对象哪里得到了赞助,用以写出的代码更觉优雅
两个CTime time1,time2,计算他们的天数
实际上产生的是个CTimeSpan对象,相当于:
CTimeSpan span = time1 - time2;
int days = span.GetDays();
又如:
CTime time4( 2007, 1, 1, 22, 15, 0 ); // 10:15PM March 19, 1999
CTime time = CTime::GetCurrentTime();
CTimeSpan span = time - time4;
int iSeconds = span.GetSeconds();
int idays = iSeconds / 86400
CTime 的一般常用方法相关推荐
- python中sys用法_python中os和sys模块的区别与常用方法总结
python 的 python中os和sys模块的区别与常用方法总结 前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看 ...
- os和sys模块的常用方法
os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口; sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境. [1] os 常用方法 o ...
- C++常用方法笔记资料
C++常用方法笔记资料 目录 目录 C++常用方法笔记资料 VS中常用的设置 C++函数注释规范: 使用fprintf保存数据 C++和OpenCV的Debug文件 获得路径中的文件名和文件前缀和后缀 ...
- python中的sys模块和os_python中os和sys模块的区别与常用方法总结
前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 官方解释: os: This module provi ...
- python 线程(1)-- 常用方法与属性,锁,同步
一.库介绍 线程管理使用threading模块 threading模块提供的类: Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, ...
- VC2012下MFC程序各控件的常用方法
一下控件的用法全部在VC2012下调试通过,特发文收藏(部分内容来自或参考自网络): Static Text: 将ID号改成唯一的一个,如:IDC_XX,然后进一次类向导点确定产生这个ID,之后更改C ...
- vc 界面编程常用方法 listctrl toolbar
vc 界面编程常用方法收藏 新一篇: Building SQLite3 with Visual Studio 2005 | 旧一篇: Visual Studio 2005 IDE 技巧和窍门 &l ...
- 30 个 php 操作 redis 常用方法代码例子
这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类 型. list 类型和 set 类型的数据 , 需要的朋友可以 ...
- SearchRequestBuilder常用方法说明
SearchRequestBuilder常用方法说明 (1) setIndices(String... indices):上文中描述过,参数可为一个或多个字符串,表示要进行检索的index:(2) s ...
最新文章
- POJ 1006 Biorhythms
- 一个数里有那些约数用c++怎么做_如何从一堆数里找出哪几个数相加等于你要的值?...
- ubuntu(14.04) 下配置重写
- C#省市二级联动(王者荣耀挑选英雄为例)
- ObjectContext.Refresh
- Linux下ARM开发环境搭建
- 用javascript缓存ajax数据
- php公众号客服消息图文,微信公众号开发系列-发送客服消息(示例代码)
- Percona XtraBackup 安装介绍篇
- Hello, world!
- 就你赚的那点钱,我们家哪里有能力请护工?
- 怎样缩小图片大小kb?
- Cannot lock file hash cache (E:\blackWu\github\X5WebView\WebViewX5\.gradle\4.6\fileHashes) as it has
- android:layout_height=match_parent和android:layout_marginTop=100dp同时作用
- 计算机无法上无线网络连接到internet,电脑连接不上无线网络,教您怎么解决电脑连接不上无线网络...
- win10连接打印机问题:不能访问此共享文件夹
- 如何更好的与ChatGPT人机对话进行辅助pyhton代码开发
- 20年上海站D题Walker(二分,简洁)
- Oracle生成日历表
- 《C++新经典Linux C++通信架构实战》第2章 进入Nginx之门