在VB中如何定义合法的日期型常量??

如题所述

在 Visual Basic (VB) 中,你不能直接创建一个日期型常量,因为 VB 不允许定义日期字面量作为常量。不过,你可以定义一个长整型(Long)常量来代表一个特定的日期,只要你保证这个长整型的值符合 VB 中 Date 类型的要求。

在 VB 中,Date 类型是基于 1/1/1900 的,所以你可以使用一个长整型来表示从 1/1/1900 算起的天数。例如:

```vb

Const MyDate As Long = 12345 ' 这里的数字必须是有效的日期

```

然后,你可以使用 `DateValue` 函数将这个长整型转换为一个 Date 类型的值:

```vb

Dim dateValue As Date

dateValue = DateValue(MyDate)

```

请记住,这个长整型值必须是从 1/1/1900 开始计算的有效天数。例如,1月1日, 1900 年的值是 1,1月1日, 1901 年的值是 366 + 1 = 367,以此类推。

如果你想要定义一个具体的日期,比如 12/31/2023,你可以按照下面的方法操作:

```vb

Const MyDate As Long = _

    (Year(DateSerial(2023, 12, 31)) - 1900) * 365 + _

    (DateSerial(2023, 12, 31) - 1) + _

    (Day(DateSerial(2023, 12, 31)) - 1) + _

    (Month(DateSerial(2023, 12, 31)) - 1) * 30 + _

    (Hour(DateSerial(2023, 12, 31)) - 12) * 3600 + _

    Minute(DateSerial(2023, 12, 31)) * 60 + _

    Second(DateSerial(2023, 12, 31))

```

以上代码首先使用 `DateSerial` 函数创建一个 Date 类型的值,然后将这个值转换为从 1/1/1900 开始的天数。这个天数就是你可以在 Long 常量里存储的值。

最后,你可以像之前一样使用 `DateValue` 函数将这个长整型转换回一个 Date 类型的值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-12-23

VB6.0中合法的日期型常量须以数字符号 (#) 扩起来。

月份在前,中间是日期,最后是年份。

例:

Option Explicit
    Const myDate As Date = #12/1/1993#

Date 数据类型

Date 变量存储为 IEEE 64 位(8
个字节)浮点数值形式,其可以表示的日期范围从 100 年 1 月 1 日到 9999 年 12 月 31 日,而时间可以从 0:00:00 到
23:59:59。任何可辨认的文本日期都可以赋值给 Date 变量。日期文字须以数字符号 (#)
扩起来,例如,#January 1, 1993# 。

相似回答
大家正在搜