我正在将一些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
答案 0 :(得分:0)
在对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日星期六