首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VB6日期数据类型:精度和格式

VB6日期数据类型:精度和格式
EN

Stack Overflow用户
提问于 2008-10-09 10:07:24
回答 3查看 4.8K关注 0票数 4
  1. VB6 Date数据类型有多精确(以秒的分数表示)?
  2. 如何将其格式化以显示秒的分数?

阔别多年后,我再次访问VB6,我的生活已经记不起我曾经知道的事情。我考虑给它加上一个memory-leak标签,因为我的内存泄露了(嗯,嗯,嗯)。

后来我发现了这个API调用,它似乎起作用了:

代码语言:javascript
复制
Declare Sub GetSystemTime Lib "kernel32.dll" (lpSystemTime As SystemTime)

Public Type SystemTime
  Year As Integer
  Month As Integer
  DayOfWeek As Integer
  Day As Integer
  Hour As Integer
  Minute As Integer
  Second As Integer
  Milliseconds As Integer
End Type
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-10-09 10:30:32

1)仅秒级,以及

2)没有办法。

票数 3
EN

Stack Overflow用户

发布于 2008-10-09 12:34:52

Date数据类型基于带范围检查(最小/最大日期值)的Double数据类型以及考虑的纪元。换句话说,它没有什么特别之处,特别是考虑到VBA不是强类型语言。

如果你在一个连续体中考虑时间(我想你应该这样想),那么Double是一个很好的选择。双精度浮点的精度,其中一天=1(整数)实际上是九位小数。因此,类型为Double (因此类型为Date)的值可以轻松地容纳亚秒值。

然而,您面临的问题是,VBA中的时态函数(NowDateSerialDateDiffDateAdd等)的最小粒度是1秒。如果将它们与存储为亚秒级精度的Double的日期值一起使用,则会舍入到一秒。同样适用于为VBA6编写的用户控件等。

当然,您可以为所需的时态函数编写自己的实现(我记得,为了在StdDataFormat中读/写亚秒级的SQL Server值,而无需在VBA中舍入到MS数据网格中,必须实现包装类),但它会开始让人感觉您正在使用自己的时态数据类型(糟了!)

票数 9
EN

Stack Overflow用户

发布于 2008-10-09 10:27:10

我认为VB6中的日期数据类型不能处理一秒的分数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/186622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档