使用DOB计算年龄

时间:2018-02-04 14:06:25

标签: c#

我读过这样的问题:How do I calculate someone's age in C#?。假设我想确定一个出生日期是否让一个人超过21岁。我可以这样做:

:visited

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

2 个答案:

答案 0 :(得分:0)

看起来很好。您链接的另一个问题是不同的,因为它计算年龄。你不关心实际的年龄 - 你只想知道它是否大于21岁。

答案 1 :(得分:0)

我认为这是好的方法。你说的是速度(你的方法比较慢或没问题),我没有看到任何其他快速方法检查年龄是21岁或以上。

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

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

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

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

  

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