我想创建一个VBA代码,您需要花一个工作日,d
加上n
天数,然后它将返回日期n
天数{{ 1}},不包括y
一周中的周末。注意:如果d
属于周末,则应返回前一个工作日。
y
例如,如果我算是在14天后(包括周末)减去本周的周末,则明天是09/27。可能是这样的:
d + n - (weekend of d week) = y
我如何构建这样的东西?
答案 0 :(得分:0)
我到了!如果有帮助的人,我会发布代码。
Sub Example()
Dim Day, FinalDay As Date, ActualWeekend As String, DaysToAdd As Integer
DaysToAdd = 14
Day = CDate(Left(Now() + 1, 10)) 'here i add +1 to see if the final day ends on 10/13, but you can put any date as you wish
ActualWeekend = True
For i = 1 To DaysToAdd
If (Weekday(CDate(Day) + 1) = 7 Or Weekday(CDate(Day) + 1) = 1) And ActualWeekend = True Then
Day = CDate(WorksheetFunction.WorkDay(Day, 1))
ActualWeekend = False
Else
Day = Day + 1
End If
Next i
FinalDay = Day
If Weekday(CDate(FinalDay)) = 7 Or Weekday(CDate(FinalDay)) = 1 Then
FinalDay = CDate(WorksheetFunction.WorkDay(FinalDay, -1))
End If
MsgBox FinalDay
End Sub
答案 1 :(得分:0)
ifstream myFile;
myFile.open("file.txt");
// Check for errors
if (myFile.fail()) {
cerr << "Error: File could not be found";
exit(1);
}
答案 2 :(得分:0)
您也可以使用工作表功能执行此操作。 相当于VBA:
Function dueDate(startDt As Date, numDays As Long) As Date
With Application.WorksheetFunction
dueDate = .WorkDay(.WorkDay(startDt, 5) + numDays - 5 + 1, -1)
End With
End Function
工作表功能相同:
=WORKDAY(WORKDAY(StartDt,5)+numDays-5+1,-1)