date变量的赋值问题请教?

kanzm 2009-01-29 10:28:33
date变量的赋值问题请教?
Private Sub Command1_Click()
Dim t As Date
t = -1
MsgBox t '显示 1899-12-29

t = 1
MsgBox t '显示 1899-12-31

t = 0
MsgBox t '显示 0:00:00 。为何显示为 1899-12-30 ???End Sub
...全文
121 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
三楼の郎 2009-01-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kanzm 的回复:]
我为 t 赋值为什么,才能让其显示为:
1899-12-30
这个日子呢?
[/Quote]

Debug.Print Format("1899-12-30", "yyyy-MM-dd")
SYSSZ 2009-01-29
  • 打赏
  • 举报
回复
Date 数据类型可以表示的日期范围从 100 年 1 月 1 日到 9999 年 12 月 31 日,当其他的数值类型要转换为 Date 型时,小数点左边的值表示日期信息,而小数点右边的值则表示时间。午夜为 0 而中午为 0.5。负整数表示 1899 年 12 月 30 日之前的日期。-657434对应100 年 1 月 1 日,-657433对应100 年 1 月 2 日,。-657432对应100 年 1 月 3 日…… -1对应1899-12-29,1对应1899-12-31 ,2对应1900-1-1 ……以此类推。
若要0对应1899-12-30 需格式化,否则对应的时间小时-分-秒:
Private Sub Command1_Click()
Dim t As Date
t = -1
MsgBox t '显示 1899-12-29

t = 1
MsgBox t '显示 1899-12-31
t = 0
MsgBox Format(t, "YYYY-MM-DD") '显示为 1899-12-30
End Sub

kanzm 2009-01-29
  • 打赏
  • 举报
回复
我为 t 赋值为什么,才能让其显示为:
1899-12-30
这个日子呢?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧