如何在VC中加减日期及 CTime COleDateTime的常用操作和比较

实现求某天的前一天操作(C++,shell) 实现求某天的前一天操作 其实每次跟闰年打交道时,都会想起小学数学全区统考时的考题, 问:2100年是否是闰年?当时我们班几乎是全军覆没,老师特别生气地跟我们说, 书上小字部分都有说明,能被4和100整除,但不能被400整除的也不是闰年。我没讲到,你们就不知道看书吗? 当时的情景仍然历历在目,我觉得这辈子,什么是闰年估计我应该不会再出错了。呵呵~ 言归正传,看看这题目应该如何来实现呢。 阅读详情
如何在VC中加减日期及 CTime COleDateTime的常用操作和比较 [转贴 2008-10-31 15:51:28]    
我顶 字号:大 中 小

如何在VC中加减日期
 使用CTime类,如:
    CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
    CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999
    CTimeSpan ts = t2 - t1; // Subtract 2 CTimes
    ASSERT( ts.GetTotalSeconds() == 86400L );
    ASSERT( ( t1 + ts ) == t2 ); // Add a CTimeSpan to a CTime.
    ASSERT( ( t2 - ts ) == t1 ); // Subtract a CTimeSpan from a CTime.


CTime COleDateTime的常用操作和比较
1) 获取当前时间。
CTime time;
time = CTime::GetCurrentTime();
2) 获取时间元素。
int year = time.GetYear() ;
int month = time.GetMonth();
int day = time.GetDay();
int hour = time.GetHour();
int minute = time.GetMinute();
int second = time.GetSecond();
int DayOfWeek = time.GetDayOfWeek() ;
3) 获取时间间隔。
CTimeSpan timespan(0,0,1,0); // days,hours,minutes,seconds
timespan = CTime::GetCurrentTime() - time;
4) 把时间转换为字符串。
CString sDate,sTime,sElapsed Time ;
sDate = time.Format("%m/%d/%y"); //ex: 12/10/98
sTime = time.Format("%H:%M:%S"); //ex: 9:12:02
sElapsed Time = timespan.Format("%D:%H:%M:%S");
// %D is total elapsed days
要想知道更多的时间格式,参见M F C文档中的strftime。
使用COleDateTime类
1) 获得一年中的某一天。
COleDate Time datetime;
datetime = COleDateTime::GetCurrentTime();
int DayOfYear = datetime.GetDayOfYear();
2) 从文本串中读取时间。
COleDate Time datetime;
datetime.ParseDateTime("12:12:23 27 January 93");
说明。

CTime和COleDateTime具有几乎同样的功能。然而, COleDateTime允许用户获得一年
中的某一天(创建Julian日期的一种好方法),以及分析一个时间文本串。
与CTime相比, COleDateTime的优点在于它支持DWORD变量。COleDateTime使用的
位数是双浮点的两倍,既然CTime只是简单地计算从1970年1月1日之后经过的秒数,
所以到了2 0 3 7年它将达到4 2 9 4 9 6 7 2 9 5,从而不能再使用。相反,
COleDateTime是一个浮点数,它表示是从1 9 0 0年1 2月3 0号之后的天数(小时是天的小数部分),几千年之内不会溢出。

如何比较两个datetime的大小 今天写了个小程序里面用到了比较两个日期时间的大小,发现自己很傻很天真,特此一贴,以作纪念:思路变化:1.CString strSystemTime; //获取系统时间COleDateTime colTime = COleDateTime::GetCurrentTime(); strSystemTime = colTime.Format(_T("%Y-%m-%d %H:%M:%S 阅读详情

相关推荐

VC++时间操作——CTime与CTimeSpan类的使用

CTime指定时间初始化 2022-08-15 10:22:03。CTimeSpan 计算CTime时间差。CTime转化CString。CString转CTime。CTime获取当前时间。CTime加上特定时间。

m0_60352504的博客 1125

让COleDateTime加1天

COleDateTime   dt; dt   =   COleDateTime::GetCurrentTime(); COleDateTimeSpan   ds; ds.SetDateTimeSpan(1,   0,0,0); dt   =   dt   +   ds   ;

2042

[STM32H750]HAL库下FMC驱动正点原子MCU屏的移植与优化

本文详细介绍了在STM32H750平台上使用HAL库移植与优化正点原子MCU屏幕驱动的完整过程。重点解析了FMC硬件配置、Cache一致性处理、精确延时实现等关键技术难点,提供了实用的移植方案和性能优化技巧,帮助开发者高效解决屏幕显示问题。

rock5的博客 286

Windows中如何计算时间间隔(2)COleDateTime 和COleDateTimeSpan类

COleDateTime 和COleDateTimeSpan 也是常用的2个时间类,其用法类似于前面的CTime和CTimeSpan.先分别进行说明,下面的内容引用自MSDN。 COleDateTime没有基类。   COleDateTime类封装了OLE自动化中使用的DATE数据类型。它是OLE自动化的VARIANT数据类型的可能类型之一。一个COleDateTime值代表一个绝...

yingyingol 693

基于matlab的心电信号预处理

这是前段时间做的一个课程设计,做的比较简单,没有考虑到太细,只是初步地达到了想要的效果。这次设计主要是对心电信号进行预处理,将其信号中包含的一些干扰滤除或者抑制掉。 一、心电信号 (1)心电信号的特性   人体心电信号是非常微弱的生理低频电信号,通常最大的幅值不超过5mV,信号频率在0.05~100Hz之间。心电信号是通过安装在人体皮肤表面的电极来拾取的。由于电极和皮肤组织之间会发生极化现象

i_weimoli的博客 6万+

ISO7816协议深度解析-简单易懂协议详解(一)-- 复位,字符帧,及ATR

1. 摘要 IC卡必须支持T=0或T=1的协议,但不是同时支持这两种协议,而终端则必须同时支持T=0和T=1的协议。 • T=0通讯协议是异步半双工字符传输协议; • T=1通讯协议是异步半双工块传输协议; 在ISO7816-3标准中,具体规定了这两种协议:T0和T1。 IC卡所用的协议在TD1中指定,如果在复位应答信息中没有TD1,则表示用T=0的协议进行通讯。在复位应答后,IC卡和终端之间即用IC卡指定的协议进行通讯。 2. 硬件接口 1)VCC:电源输入(A类:5V, B类:3V) 2)GND:地 3

代码打工人的博客 4万+

如何在VC中加减日期及 CTime COleDateTime的常用操作

如何在VC中加减日期 使用CTime类,如: CTime t1( 1999, 3, 19, 22, 15, 0 );// 10:15PM March 19, 1999 CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999 CTimeSpan ts =t2 - t1; // Subtract 2 CT...

dong_cc的专栏 1709

AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

AutoDL上传数据详细步骤(自己用的步骤,可能没有其他大佬用的那么高级)

孟孟单单的博客 7万+

CTime和COleDateTime

如何在VC中加减日期, 使用CTime类,如:     CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999     CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999     CTimeSpan ts = t2 - t1; // Subtract 2

Beyond.cn 979

揭秘《出塞》UE5+AIGC高效工作流 | 从创意到成片全流程解析

李季老师(老李头儿)在第四届瑞云大赛斩获季军的作品《出塞》的完整创作流程!

UWA—简单优化,优化简单! 767

基于深度学习的茶叶等级检测识别系统:YOLOv8 + UI界面 + 数据集完整实现

随着深度学习技术的不断进步,基于计算机视觉的茶叶等级检测系统可以大大提高检测效率,提供客观一致的评估标准。本系统将利用YOLOv8进行茶叶等级的检测与识别,通过图形用户界面(UI)实现与用户的交互,提供茶叶等级分类的实时反馈。本文将详细介绍如何使用YOLOv8结合UI界面,建立一个完整的茶叶等级检测与识别系统,包括数据集的准备、模型的训练、UI的设计及完整的代码实现。本系统的目标是通过深度学习技术,结合YOLOv8模型和图形用户界面(UI),实现对茶叶等级的自动化检测与识别。

YOLO 972

vc字符格式转化为时间

//字符格式转化为时间,真:加一天;假:减一天    //字符格式转化为时间CString CGrossProfitRatioReportDlg::StrToDate(CString strTime,bool bAddOrPlus){    CString  str(strTime);    int   year,month,day,hour,minite,second;       sscanf

水上漂的专栏 4169

fast-lio系列改进版本

2.回环检测的优化结果,更新到FAST-LIO2的当前帧位姿中,幷进行ikdtree的重构,进而更新submap。其它的效果还不清楚,实测lio部分稳定性很好。用fast-lio_slam就很稳定。融合了fast-lio2和sc-pgo,两部分分开运行,SC-PGO从FAST-LIO2节点获取里程计和激光雷达点云主题。的作者kim在FAST-LIO2的基础上,添加SC-PGO模块,通过加入ScanContext全局描述子,进行回环修正,SC-PGO模块与FAST-LIO2解耦,非常方便,很优秀的工作。

z1872385的博客 3189

VC(MFC、ATL)中 得到2个SYSTEMTIME时间差_人生几何_新浪博客

第一种方法: CTime 和CTimeSpan ,例如: // example for CTime::operator +, - CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999 CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999 C...

人生几何的博客 179

让 ABAP 复杂内表优雅“喂饱”:Complex Internal Table Filling 全面实战指南

本文为ABAP开发者系统梳理了复杂内表的填充与复制方法。重点介绍了work area的两种声明方式、APPEND操作的多形态用法及其初始值语义,以及VALUE #( )构造器的逐行与整表写法。同时讲解了CORRESPONDING的同名字段映射功能,帮助开发者在"航司与航线"等复杂业务场景中实现最佳实践。文章还涵盖内存优化、可读性建议和常见误区,提供可运行样例,适用于ABAP On-Premise和SAP BTP环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 168

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VC(MFC、ATL)中 得到2个SYSTEMTIME时间差

第一种方法: CTime 和CTimeSpan ,例如: // example for CTime::operator +, - CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999 CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999 CTimeSpan ...

weixin_34362790的博客 115

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VC/MFC 时间格式转换和比较大小 CString转为COleDateTime

弄了好久终于完成了时间格式转换比较的问题,在这里分享下我的一点点经验吧,嘿嘿我用的数据库是SQL Server2005,数据库表中有一类型为smalldatetime的数据,用于存放发车时间(比如:2010-1-1 10:00:00)要求在VC++里面提取该时间并和当前系统时间进行比较,判断大小 void CSaleDlg::OnBtnSurebuy() { // TODO: Ad

sitiao2009的专栏 6705

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

c++ mfc 时间控件 加减时间

1.运行结果 2.代码 void CMFCApplication12Dlg::OnBnClickedButton1() { CTimeSpan sp(15, 0, 0, 0); // 天 时 分 秒 CTime tm; tm = CTime::GetCurrentTime(); CTime st = tm + sp; m_timeStart.SetTime(&st); CTime et = tm - sp; m_endTime.SetTime(&et); } ..

xie__jin__cheng的博客 867

C++ double类型的数转换成具体的日期和时间

通过OLE获取到的时间是一个double类型的数据: 比如43058.3876851852,整数部分代表的是:从1899年12月30日午夜起计算“日”数。而小数部分代表的是不足一天。具体的计算过程结果可以通过,Excel表格格式转换来查看1.在Excel表格中输入具体的浮点数 2.右键设置单元格格式 3.把单元格格式改为日期格式 4.双击单元格就可以看到转换之后的结果了 具体的C语言实现方

wb175208的专栏 8954

CTime和CTimeSpan

上一节中鸡啄米讲了MFC常用类CString类的用法,本节继续讲另外两个MFC常用类-日期和时间类CTime类和CTimeSpan类。        日期和时间类简介        CTime类的对象表示的时间是基于格林威治标准时间(GMT)的。CTimeSpan类的对象表示的是时间间隔。        CTime类和CTimeSpan类一般不会被继承使用。两者对象的大小都是8个字节。

skiing_886的专栏 6467

VC++ CTime COleDateTime的常用操作和比较

使用COleDateTime类 1) 获取当前时间。      CTime time;      time = CTime::GetCurrentTime();2) 获取时间元素。      int year = time.GetYear() ;      int month = time.GetMonth();      int day = time.GetDay();      int hou

mochouxiyan的专栏 4941

C/C++中的ctime用法总结

头文件time.h为C语言当中的头文件,被C++继承过来。可以结合chrono进行使用。

非晚非晚的博客 3万+
上一篇: MultiByteToWideChar和WideCharToMultiByte用法详解
下一篇: 判断-U盘拔出和插入-获取它盘符
WaveYang
博客等级 码龄22年 14粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值