- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 MFC 中与 COleDateTime
战斗了几天。我有具有正确值的 CTime
。正确的年、日、月、小时、分钟和秒。我尝试了几种将 CTime
转换为 COleDateTime
的方法:
-1.我把CTim
e数据放到COleDateTime
的构造函数中
COleDateTime(int nYear,int nMonth,int nDay, int nHour, int nMin,int nSec );
-2。我将 CTime
格式化为 time.Format("%m/%d/%y %H:%M:%S");
并传递给 COleDateTime
的 ParseDateTime
。
-3。我还尝试使用 COleDateTime
SetDateTime
之后,我得到了 1-2 分钟的错误值。或多或少。我以前从未见过它,我在互联网上什么也找不到。每个人都说会失去精度,但这是一秒钟,而不是一分钟。请给我一些建议!谢谢
最佳答案
我认为问题在于 COleDateTime 内部使用 float 进行存储,该值表示自 1899 年 12 月 30 日以来的天数。
随着天数变大,较小字段(如分钟)的精度会降低。例如, float 可以准确存储值 1000000 和 0.0000001,但不能存储 1000000.0000001。它没有足够的精度。
MSDN 文档中暗示了此限制:
This type is also used to represent date-only or time-only values. By convention, the date 0 (30 December 1899) is used for time-only values. Similarly, the time 0:00 (midnight) is used for date-only values.
所以基本上,如果您想要一个精确的时间,请将日期设置为 1899 年 12 月 30 日。
微软似乎可以设计这个类来将“天”部分存储为整数,但是嘿,那太容易了。
关于c++ - coledatetime 中的值不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16668876/
我在 MFC 中与 COleDateTime 战斗了几天。我有具有正确值的 CTime。正确的年、日、月、小时、分钟和秒。我尝试了几种将 CTime 转换为 COleDateTime 的方法: -1.
我正在将一个解决方案从 Visual c++ 6.0 迁移到 Visual Studio 2013。在解决了解决方案中的许多问题后,我在 windows sdk header afxdisp.h 中遇
我试图理解我在调用时遇到的 ASSERT COleDateTime time; this->m_wndDate.GetTime(time); 我的 datePicker 中的日期是 31/12/999
如何将 COleDateTime 转换为某种可以轻松转换回来的整数表示形式。 最佳答案 我认为最简单的方法是通过 COleDateTimeSpan 如下: // Create an epoch sta
我正在以 ColeDateTime 格式从数据库中读取日期时间。我想将它转换为 CTime 以获得日期月份年份和时间。 CString repDt; //**this will hold the da
美好的一天。 我必须使 C++ 项目与 Linux 兼容。在现有项目中,使用了一些旧的 MFC 函数。我正在寻找 COleDateTime 包装器的替代品。是否存在适用于 Linux 的替代对象,或者
我必须为我的一项作业更新一个旧的日期类,我卡在这个功能上,我必须重做。 如果操作可行,函数需要返回一个 bool 值。 我想做的是用 ColeDateTimeSpan 减去 ColeDateTime
我有一个使用 mktime 转换为 UNIX time_t 的 struct tm 对象,当传递给 COleDateTime 的构造函数时,它似乎是添加一个小时以考虑夏令时(英国时间),即使 COle
我想从 COleDateTime 对象中获取年份和月份,并且希望它尽可能快。我有 2 个选择; COleDateTime my_date_time; int year = my_date_time.G
Javascript 调用 COM 接口(interface)。我想将 Date() 转换为 COleDateTime(ATLCOM) 或 DATE。还是其他方法? //通信接口(interface)
这是我的方法定义: IMSAToolsLibraryInterface : IUnknown { // // Raw methods provided by interface
我需要解析美国日期字符串以提取日期。 COleDateTime dData; LCID lcid = 0x409; // 0x409 is the locale ID for English
我有一个旧库,它使用 COleDateTime 作为 C++ MFC Dll 中的返回类型。当我执行 PInvoke 时,我能否自信地将其编码为 DateTime 对象?或者我应该做一些古怪的事情,比
我有这种方法可以将语言环境设置为波兰语: void CMeetingScheduleAssistantApp::SetLocale() { // https://www.microsoft.c
我有一个 COleDateTime 对象,我想解析 YYYY-MM-DD 格式的日期字符串。 例如,字符串变量是: std::string strDate = "2022-07-04"; COleDa
我是一名优秀的程序员,十分优秀!