使用 DOB 计算年龄

  • 本文关键字:计算 DOB 使用 c#
  • 更新时间 :
  • 英文 :


我读过这样的问题:如何在 C# 中计算某人的年龄? 假设我想确定出生日期是否使一个人超过 21 岁。 我可以这样做吗:

if (dateOfBirth.Date <= DateTime.Now.AddYears(-21).Date 
{
 //Do something because the person is over 21.
}

在这里,我只有一行代码来获取年龄。 另一个问题中的方法有两个或更多——这就是我问的原因。 我的方法慢了还是什么?

看起来不错。您链接到的另一个问题是不同的,因为它正在计算年龄。你不在乎实际年龄是多少——你只想知道它是否大于 21 岁。

我认为这是可以的。你说的是速度(你的方法更慢或还可以(,我没有看到任何其他快速的方法来检查年龄是 21 岁或以上。

以下代码只是另一种方式:

if (dateOfBirth.AddYears(21).Date <= DateTime.Now.Date)
{
 //Do something because the person is over 21.
}

它类似于您的代码,只是不是减少日期,而是递增和比较。

我有一个想法,加法可能比减法更快,所以我在上面建议,但只是意识到

加减法之间的唯一区别是发生的反转。因此,加法和减法之间的任何时间差异都可以忽略不计,并且比 CPU 时钟周期短得多。由于 CPU 只在时钟上前进,因此加/减法的速度相同。

最新更新