1

嗨,我有以下代码:

Dim CurrentDate
CurrentDate = Date()

Dim intHour
Dim intMinute
Dim intSecond

intHour = 17
intMinute = 0
intSecond = 0

Dim NewDate
Dim NewDate1
Dim NewDate2

NewDate = DatePart("yyyy", CurrentDate)
NewDate1 = DatePart("m", CurrentDate)
NewDate2 = DatePart("d", CurrentDate)


Dim Dates 

Dates = DateSerial(NewDate, NewDate1, NewDate2)

Dim Time 

Time = TimeSerial(intHour, intMonth, intSecond)

我在 VB 中做了同样的事情:

    Dim value As Date = Date.Now
    Dim intHour As Integer
    Dim intMinute As Integer
    Dim intSecond As Integer


    intHour = 17
    intMinute = 0
    intSecond = 0

    Dim newdatetime As DateTime = New Date(value.Year, value.Month, value.Day, intHour, intMinute, intSecond)

在VB中我可以做

Dim newdatetime As DateTime = New Date(value.Year, value.Month, value.Day, intHour, intMinute, intSecond).

在我的 ASP 代码中,我有Dates = DateSerial(NewDate, NewDate1, NewDate2)Time = TimeSerial(intHour, intMonth, intSecond). 我怎样才能像在 VB 中一样将它们作为 DateTime 组合在一起?

4

1 回答 1

4

两种方式:

dim h,n,s
h = 17
n =  1
s =  2

dim t
t = timeserial(h,n,s)

dim d
d = date()
dim ts1
ts1 = dateadd("h",h, _
      dateadd("n",n, _
      dateadd("s",s, d )))
dim ts2
ts2 = d + T

两者都产生相同的输出。有添加的那个有一些陷阱,这取决于你玩它离第 0 天有多近。我认为第一种方法是“更理智”。据我记得 VBScript 只是将日期部分存储在整数或浮点数中,将时间部分存储在浮点数的小数部分中(作为 24 小时一天的一部分,因此 12:00 是 0.5),因此您可以添加他们和 +

于 2012-12-11T22:33:07.763 回答