我正在将一些DTS包从Visual Basic转换为C#,我想知道以下将生成的@OldDate。我不是一个VB.NET的家伙,真的没有时间玩这个...它必须是正确的所以我伸出援手!
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()
我不熟悉工作日(),这只会产生一个数字日。所以下面的陈述
if weekday(datActionDate) > 1 and weekday(datActionDate) < 7 then
基本上是寻找不是星期六和星期日的日子(一年有105天 - 这将是从今天起减少的最小值)
在此行中减去holidayLs(大约有11个)的假期时
if not holidayLs(datActiondate) then
然后datActionDate = 2018年11月24日星期六