DTS 包的 Visual Basic 时间变量

Visual Basic Time Variable for DTS packages

我正在将一些 DTS 包从 Visual Basic 转换为 C#,我想知道下面的 @OldDate 会产生什么。我不是 VB.NET 人,真的没有时间玩这个..它必须是正确的,所以我正在联系 SO!!

datActionDate = Now()
intNumberOfDays = 365
businessDays = 0

Set .ActiveConnection = objConnection
    .CommandType = 4
    .CommandText = strStoredQuery
    .Parameters.Append .CreateParameter("@OldDate",7,1,8,CDate(datActionDate))
    .Execute

如有任何帮助,我们将不胜感激!!

*编辑 datActionDate 是来自 do 循环的数字。 holidayLs 基本上是根据日期列表检查该日期

do until bdays = intNumberOfDays
    datActionDate = DateAdd("d", -1, datActionDate)
    if weekday(datActionDate) > 1 and weekday(datActionDate) < 7 then
        if not holidayLs(datActiondate) then
            businessDays = businessDays + 1
        end if
    end if
loop

在对 VB 有了足够的基本了解以阅读这段代码后,我发现这个问题与语法无关,而更多地只是通过逻辑来解决问题。 @OldDate 最终将成为从今天起 470 天左右的数字

DateAdd("d", -1, datActionDate)

从定义为

的 datActionDate 中减去一天
datActionDate = Now()

我不熟悉 weekday() ,它只产生一个数字日。所以下面的语句

if weekday(datActionDate) > 1 and weekday(datActionDate) < 7 then

基本上是在寻找不是周六和周日的日子(一年中有 105 天 - 这将是从今天开始递减的最小值)

当减去该行中 holidaysLs(大约有 11 个)中的假期时

if not holidayLs(datActiondate) then

那么 datActionDate = 2018 年 11 月 24 日星期六