将日期添加到特定日期并复制星期五的计数

时间:2015-05-19 05:33:15

标签: vb.net

我试图在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

我将此计数的结果添加到我的旧日期。

现在我怎样才能实现最后两步?

1 个答案:

答案 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