coledatetime值不正确
incorrect value in coledatetime
本文关键字:不正确 coledatetime 更新时间:2023-10-16
我在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内部使用浮点数进行存储,并且该值表示自1899年12月30日以来的天数。
随着天数的增加,较小字段(如分钟)的精度降低。例如,float可以准确地存储1000000和0.0000001,但是不能存储1000000.0000001。它没有足够的位精度。
这个限制在MSDN文档中有提示:
此类型也用于表示仅日期或仅时间值。按照惯例,日期0(1899年12月30日)用于仅限时间的值。类似地,时间0:00(午夜)用于仅限日期的值。
基本上,如果你想要一个精确的时间,设置日期为1899年12月30日。
似乎微软可以直接设计这个类,将"days"部分存储为整数,但是,嘿,这太简单了。
相关文章:
- 使用2个键的cpp-stl::优先级队列排序不正确
- 正弦级数方程计算不正确
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 密码登录程序将永远循环并显示不正确的结果
- 在C++中返回不正确的楼层函数值
- 形状对象的旋转和缩放不正确C++
- C++ 读取文件读取文件不正确
- 关于类的 Python 文档 - 对C++的引用不正确
- 特征 LLT 模块给出不正确的结果?
- glibcxx STL 在实现 std::valarray::sum() 时是否不正确?
- 如果语句逻辑不正确
- 来自逆 vp 矩阵和相机位置的光线方向不正确
- 不正确的操作数类型 MSVC
- 数组填充了不正确的值
- 我是否不正确地集中了这些字符数组?
- 为什么除非我使用 cout,否则我的值不正确?
- 计算幂级数的数学结果不正确
- 为什么 sizeof 在 C++ 中给出不正确的字节数?
- atoi() 在应用于大型命令行参数时会产生不正确的值
- 不正确的比较和交换计数器输出用于快速排序功能