Option ExplicitType DateValue v As Date End TypeType DoubleValue v As Double End TypeType ByteArray a(7) As Byte End TypeSub Main() Dim dt As DateValue, ba As ByteArray, d As DoubleValue Dim i As Long
dt.v = #9/7/2004 11:02:25 AM# Debug.Print dt.v
LSet ba = dt '等同与 CopyMemory ba.a(0), dt.v, 8 For i = 0 To 7 Debug.Print IIf(ba.a(i) < 16, "0", "") & Hex(ba.a(i)) & " "; Next Debug.Print
d.v = CDbl(dt.v) Debug.Print d.v
'Date值就是用Double存储的,表示距离 1899-12-30 的天数 '(时分秒折算成小数)。两者的内存字节完全一致 LSet ba = d '等同与 CopyMemory ba.a(0), d.v, 8 For i = 0 To 7 Debug.Print IIf(ba.a(i) < 16, "0", "") & Hex(ba.a(i)) & " "; Next Debug.Print End Sub
MsgBox CDbl(CDate("09/07/2004 11:02:25"))你看一下这二个的返回值就知道了日期型与浮点数的关系,但是HEX值,我还不知道,
可能是指:当前日期与 1900/01/01 00:00:00 相差的秒数
v As Date
End TypeType DoubleValue
v As Double
End TypeType ByteArray
a(7) As Byte
End TypeSub Main()
Dim dt As DateValue, ba As ByteArray, d As DoubleValue
Dim i As Long
dt.v = #9/7/2004 11:02:25 AM#
Debug.Print dt.v
LSet ba = dt '等同与 CopyMemory ba.a(0), dt.v, 8
For i = 0 To 7
Debug.Print IIf(ba.a(i) < 16, "0", "") & Hex(ba.a(i)) & " ";
Next
Debug.Print
d.v = CDbl(dt.v)
Debug.Print d.v
'Date值就是用Double存储的,表示距离 1899-12-30 的天数
'(时分秒折算成小数)。两者的内存字节完全一致
LSet ba = d '等同与 CopyMemory ba.a(0), d.v, 8
For i = 0 To 7
Debug.Print IIf(ba.a(i) < 16, "0", "") & Hex(ba.a(i)) & " ";
Next
Debug.Print
End Sub