c# - 如何确定生日或周年纪念日是否发生在日期范围内

标签 c# datetime

鉴于我有一个生日/纪念日 DateTime,我如何确定该日期是否发生在特定日期范围内?例如,

生日 = 1/2/2000
日期范围 = 12/25/2008 - 1/3/2009

我需要一种方法来确定此人的生日是否发生在该日期范围内 - 最好是在 C# 中。

我首先着手更改生日 DateTime 的年份以匹配日期范围,然后只检查"new"生日 DateTime 是否在日期范围的开始日期和结束日期之间...但是当日期范围跨越不同的年份,就像我上面的例子一样——我不得不添加一个讨厌的 if 语句。有没有更好的办法?

最佳答案

好的,这是我的看法

public static bool IsBirthDayInRange(DateTime birthday, DateTime start, DateTime end)
{
    DateTime temp = birthday.AddYears(start.Year - birthday.Year);

    if (temp < start)
        temp = temp.AddYears(1);

    return birthday <= end && temp >= start && temp <= end;
}

关于c# - 如何确定生日或周年纪念日是否发生在日期范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2553663/

相关文章:

c# - 获取被请求/被请求的页面名称

c# - OracleParameter 和 IN 子句

c# - 使用从数据库检索的 DateTime 进行减法给出奇怪的结果

php - 如何格式化 UTC 日期以在 php 中使用 Z(祖鲁)区域指示符?

date - 闰年错误的一些例子有哪些?

c# - 如何在线程中调用带多个参数的方法?

C# 日志设计 : Extension method, 的替代方案?

c# - 如何使过滤器不区分大小写?

c# - 将小时/分钟添加到 C# 中的日期时间变量

sql-server - 在 n 层应用程序 : Presentation Layer, 域或数据库中的何处设置 UTC 日期时间值?