我试图在VB.net中制作递归函数
该功能将在特殊日期添加一些日期。如果有的话 星期五在增加的日期之间它将计算它们并将它们添加到 再次约会。
它必须是递归的,因为如果有一个星期五添加超过7天后 它还必须添加另一天。像这样:
origianl date:2015/5/19
当天加入:30
添加日期:2015年6月18日
2015年5月19日至2015年6月18日周五的计数:4添加星期五后的新日期:2015年6月22日
addinf老周五计数后发生的星期五计数:1 新日期和最终结果:2015年6月23日
我认为最后两步必须是递归的。这是迄今为止我没做过的最后两步:
Public Function CountOfFriday(ByVal StartDate As Date, ByVal DayToAdd As Int32) As Int32
Dim newDate As Date = StartDate
Dim OriginalDate As Date = StartDate
Dim friday_count As Integer
For value As Integer = 1 To DayToAdd
OriginalDate = OriginalDate.AddDays(1)
If OriginalDate.DayOfWeek = DayOfWeek.Friday Then
newDate = newDate.AddDays(1)
friday_count += 1
End If
Next
Return friday_count
End Function
我将此计数的结果添加到我的旧日期。
现在我怎样才能实现最后两步?
答案 0 :(得分:1)
这将返回最终日期(希望它有帮助)
Function CountOfFriday(ByVal StartDate As Date, ByVal DayToAdd As Int32) As Date
Dim newDate As Date = StartDate
Dim OriginalDate As Date = StartDate
Dim friday_count As Integer = 0
For value As Integer = 1 To DayToAdd
OriginalDate = OriginalDate.AddDays(1)
If OriginalDate.DayOfWeek = DayOfWeek.Friday Then
Do
friday_count +=1
Loop until StartDate.AddDays(DayToAdd+friday_count)<StartDate.AddDays(friday_count*7)
Exit for
End If
Next
newDate = newDate.AddDays(DayToAdd+friday_count)
Return newDate
End Function