首页 > 编程知识 正文

mfc添加消息响应函数,mfc关闭线程函数

时间:2023-05-04 17:42:20 阅读:109790 作者:4769

MFC的COleDateTime类在软件开发中经常使用的计算——功能的执行上需要花费时间,需要深入考虑COleDateTime类以备不时之需。 闲话休提,言归正传。 我们一起来看看应该怎么使用这类东西吧。 下一个文本基本上是翻译msdn的内容以加深理解。

COleDateTime类没有基类,它封装MFC的DATE数据类型,并提供一组用于处理DATE结构中信息的方法。 DATE数据类型用于OLE automation,是VARIANT结构的成员之一。 有人对OLE automation有深刻的理解吗? 你可以在这里留言,说明其理由。 那么,COleDateTime到底可以用来做什么呢? 根据名字,可以用来表示日期和时间。 具体来说,可以表示“绝对的日期和时间值”。 绝对时间是相对于相对时间的。 例如,2012年4月13日15点29分是绝对时间。 从现在开始经过“1小时3分50秒”。 这是相对时间。 简单来说,相对时间是绝对时间差后得到的。 啊,有点罗嗦啊。

简而言之,DATE数据类型是浮点值(在mfc中为double ),用于测量(或显示) 1899年12月30日午夜之后的时间。 据此,1899年12月31日凌晨0点可以表示为1.0 (是的,我想是的。 1900年1月1日上午6时显示2.25。 同样,1899年12月29日午夜显示-1.0。 1899年12月29日上午6点显示-1.25。 请注意,在分析“时间”(time )部分时,请使用上述数字)的小数部分的绝对值。 COleDateTime类可以处理的日期、时间范围为100年1月1日---9999年12月31日,基本上已经足够了吧? 哈哈。 请注意,COleDateTime无法处理夏时制时间。

COleDateTime也可以用于只表示日期或时间。 按照惯例,如果COleDateTime只包含时间值,则此时日期为日期0(1899年12月30日),可能会有点绕圈子。 同样,如果COleDateTime只表示日期,则该时间为0:00。

看看异常的情况吧。 这个班怎么处理? 如果创建表示第100天的COleDateTime对象,则COleDateTime对象接受该日期,但GetYear、GetMonth、GetDay、GetHour、GetMinute和get set 如果日期低于MFC 4.2版,则允许使用两位数的日期值,但不允许使用MFC 4.2版或更高版本。 为了避免上述问题,COleDateTime对象必须包含4位日期。 例如,coledatetimemytime (1996,1,1,0,0 ); //1996--数位

COleDateTime的基础数学运算(,- )的结果可以使用COleDateTimeSpan类表示。 减去两个COleDateTime等于一个COleDateTimeSpan值。 COleDateTimeSpan表示相对值(还记得前面提到的绝对时间值吗? 是时间间隔。 上述两个类之间的关系类似于CTime和CTimeSpan之间的关系。 大家请看。

打开代码,看看COleDateTime的使用方法。

查看运行结果:

10秒钟! 当然这个时间非常不准确,不能用于火星着陆的时机哦!

必须先用看起来很麻烦的GetDays、GetHours、GetMin .这样的函数获取日、时间、分分秒,然后再格式化字符串吗? 没有更进一步的方法吗? 当然不是! 向下看,COleDateTimeSpan包含一个格式方法,支持以下格式字符串:%a

Abbreviated weekday name

%A

完全weekday name

%b

Abbreviated month name

%B

完全month name

%c

dateandtimerepresentationappropriateforlocale

%d

dayofmonthasdecimalnumber (0131 )。

%H

hourin 24-hour format (0023 ) )。

%I

霍耳12 -霍耳格式(0112 ) )。

%j

dayofyearasdecimalnumber (001366 ) )

%m

monthasdecimalnumber (0112 ) )。

%M

minuteasdecimalnumber (0059 )。

%p

current locale’sa.m./p.m.indicator for 12-hour clock

%S

secondasdecimalnumber (0059 ) )。

%U

Week of year as decimal number,withsundayasfirstdayofweek (0053 ) )。

%w

weekdayasdecimalnumber (06; Sunday is 0 )

%W

Week of year as decimal number,withmondayasfirstdayofweek (0053 ) )。

%x

daterepresentationforcurrentlocale

%X

timerepresentationforcurrentlocale

%y

年权重中心,统计(0099 ) )。

%Y

Year with century,as decimal number

%z%Z

Time-zone name or abbreviation; nocharactersiftimezoneisunknown

%%

百分比符号

哈哈,够了吧。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。