如果星期几是星期六或星期日,则减去

时间:2011-02-08 16:59:46

标签: vb.net

如果减去日期是星期六或星期日,则在添加到arraylist之前减去更多天数

当我这样做时,日期保持不变并且不减去,我得到转换字符串以加倍错误

Dim aftersubtraction As Date
                    Dim fromatafter As Date
                    aftersubtraction = departuredate.AddDays(-dates1.Text)
                    fromatafter = aftersubtraction.AddDays(-gracep.Text)

                    If fromatafter.DayOfWeek = "Saturday" Then
                        fromatafter.AddDays(-1)
                        dates.Add(fromatafter.ToString("MM/dd/yyyy"))
                    ElseIf fromatafter.DayOfWeek = "Sunday" Then
                        fromatafter.AddDays(-2)
                        dates.Add(fromatafter.ToString("MM/dd/yyyy"))
                    Else
                        dates.Add(fromatafter.ToString("MM/dd/yyyy"))
                    End If

2 个答案:

答案 0 :(得分:1)

While fromatafter.DayOfWeek = DayOfWeek.Saturday OrElse fromatafter.DayOfWeek = DayOfWeek.Sunday
    fromatafter = fromatafter.AddDays(-1)
End While
dates.Add(fromatafter.ToString("MM/dd/yyyy"))

您必须将从AddDays返回的日期指定给您的变量。

请设置选项strictexplicitWhy

答案 1 :(得分:0)

如果我没弄错,vb dayofweek函数返回一个整数而不是字符串。

'0 =星期天 '1 =星期一 '2 =星期二 '3 =星期三 '4 =星期四 '5 =星期五 '6 =星期六

因此出现错误信息。

你在

上得到字符串加倍错误

与if语句一致...因为.dayofweek没有返回一个字符串...它返回一个整数...所以一个整数永远不会是=“星期六”或“星期日”......它会去等于0或1