如何用 .NET 计算从今天起下一个周年纪念日的日期?

2026-05-06 10:341阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计377个文字,预计阅读时间需要2分钟。

如何用 .NET 计算从今天起下一个周年纪念日的日期?

计算某人出生日下一年最快/最好的方法如下:

例如,若某人出生于1990年1月31日,今天是2000年2月10日,他们下一周的纪念日将是2001年1月31日。2月29日应调整到3月1日(例如,如)。

什么是计算某人生日下一周年的最快/最好的方法.

例如,如果我知道一个人出生于1990年1月31日,今天是2000年2月10日,他们的下一个周年纪念日将是2001年1月31日.

如何用 .NET 计算从今天起下一个周年纪念日的日期?

2月29日应该到3月1日(例如,如果他们出生于1990年2月29日,他们的第一个生日将是1991年3月1日).

编辑:哇 – 我认为这将是更加微不足道的.我真的假设有一些我可以使用的库函数. Anyhoo,感谢你们所有人,我得到了我认为是一个有效的解决方案,它处理了所有愚蠢的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 我没有在VB.Net工作过,但我认为C#代码会有足够的意义:

private DateTime nextDate(DateTime currentDate, DateTime anniversaryDate) { DateTime nextDate; try{ nextDate = new DateTime(currentDate.Year, anniversaryDate.Month, anniversaryDate.Day); } catch (ArgumentOutOfRangeException) { //for 29 Feb case. nextDate = new DateTime(currentDate.Year, anniversaryDate.Month, anniversaryDate.Day-1).AddDays(1); } if (nextDate <= currentDate) nextDate = nextDate.AddYears(1); return nextDate; }

本文共计377个文字,预计阅读时间需要2分钟。

如何用 .NET 计算从今天起下一个周年纪念日的日期?

计算某人出生日下一年最快/最好的方法如下:

例如,若某人出生于1990年1月31日,今天是2000年2月10日,他们下一周的纪念日将是2001年1月31日。2月29日应调整到3月1日(例如,如)。

什么是计算某人生日下一周年的最快/最好的方法.

例如,如果我知道一个人出生于1990年1月31日,今天是2000年2月10日,他们的下一个周年纪念日将是2001年1月31日.

如何用 .NET 计算从今天起下一个周年纪念日的日期?

2月29日应该到3月1日(例如,如果他们出生于1990年2月29日,他们的第一个生日将是1991年3月1日).

编辑:哇 – 我认为这将是更加微不足道的.我真的假设有一些我可以使用的库函数. Anyhoo,感谢你们所有人,我得到了我认为是一个有效的解决方案,它处理了所有愚蠢的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 我没有在VB.Net工作过,但我认为C#代码会有足够的意义:

private DateTime nextDate(DateTime currentDate, DateTime anniversaryDate) { DateTime nextDate; try{ nextDate = new DateTime(currentDate.Year, anniversaryDate.Month, anniversaryDate.Day); } catch (ArgumentOutOfRangeException) { //for 29 Feb case. nextDate = new DateTime(currentDate.Year, anniversaryDate.Month, anniversaryDate.Day-1).AddDays(1); } if (nextDate <= currentDate) nextDate = nextDate.AddYears(1); return nextDate; }