gpt4 book ai didi

datetime - VB6 日期数据类型 : precision and formatting

转载 作者:行者123 更新时间:2023-12-02 22:08:28 24 4
gpt4 key购买 nike

  1. VB6 Date 数据类型的精确度如何(以秒为单位)?
  2. 如何设置其格式以显示秒的几分之一?

阔别多年后,我再次重温 VB6,但我已经记不起以前知道的事情了。我考虑放一个 在此标记,因为我的内存泄漏了(哈哈哈)。

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

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

最佳答案

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

如果您认为时间是连续的(在我看来您应该如此),那么 Double 是一个不错的选择。 double 浮点的精度(一天 = 1(整数))实际上是小数点后九位。因此,Double 类型的值(因此也是 Date 类型)可以轻松容纳亚秒值。

但是,您面临的问题是 VBA 中的时间函数(NowDateSerialDateDiffDateAdd > 等)的最小粒度为一秒。如果您将它们与以亚秒精度存储为 Double 的日期值一起使用,您将遇到四舍五入到一秒的情况。对于为 VBA6 编写的用户控件等也是如此。

当然,您可以编写自己所需的时态函数的实现(我记得必须为StdDataFormat实现包装类才能读/写亚秒级SQL服务器值无需舍入到 VBA 中的 MS 数据网格中),但它会开始感觉您正在滚动自己的时态数据类型(哎呀!)

关于datetime - VB6 日期数据类型 : precision and formatting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/186622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com