Я могу вам сказать, что DateAdd("ww", i, date)
эквивалентно DateAdd("d", 7*i, date)
;следовательно, при условии, что обе функции в C#
и vbScript
имеют одинаковое значение, они должны быть эквивалентны.
Чтобы гарантировать, что DateAdd("ww", i, date)
эквивалентно DateAdd("d", 7*i, date)
Я использовал скрипт ниже, он циклически повторяется 2лет и для каждого дня, он цикличен в течение 104 недель, если добавление дней или добавление недель как-то не совпадают, это вызывает ошибку.
date0 = Date()
For i = 0 to 2 * 365
date1 = DateAdd("d", i, date0)
For j = 0 to 2 * 53
date2 = DateAdd("d", j * 7, date1)
date3 = DateAdd("WW", j, date1)
assert = DateDiff("s", date2, date3)
If assert <> 0 Then
errMsg = _
"OPS addDays And addWeeks unmatched" &_
vbCrLf &_
CStr(date1) & vbTab &_
CStr(date2) & vbTab &_
CStr(date3) & vbTab &_
assert & vbTab
Call Err.Raise(vbObjectError + 10, "Test DateAdd(""ww"", i, date)", errMsg)
End If
Next
Next
Так что я думаю, вы можете использовать date.AddDays(7 * x)
для замены DateAdd("ww", x, date)
на неткасается несоответствия дат.