计算某人下一个生日周年纪念日最快/最整洁的方法是什么?
例如,如果我知道一个人出生于1990年1月31日,而今天是2000年2月10日,他们的下一个周年纪念日将是2001年1月31日。
2月29日至3月1日(如1990年2月29日出生,1991年3月1日为他们的第一个生日)。
编辑:哇-我以为这会更微不足道。我真的以为会有一些我可以使用的库函数。总之,多亏了你们,我得到了我想要的
认为
这是一个有效的解决方案,解决了2月29日所有愚蠢的问题。不过不是很漂亮:-(
Function NextBirthDay2(ByVal dStartDate As Date, ByVal dNow As Date) As Date
Dim oDate As Date
Dim bFeb29thHack As Boolean = dStartDate.Month = 2 And dStartDate.Day = 29
If bFeb29thHack Then
oDate = New Date(dNow.Year, 3, 1)
Else
oDate = New Date(dNow.Year, dStartDate.Month, dStartDate.Day)
End If
If (oDate <= dNow) Then
oDate = oDate.AddYears(1)
End If
If Date.IsLeapYear(oDate.Year) And bFeb29thHack Then
oDate = oDate.AddDays(-1)
End If
Return oDate
End Function