我读过这样的问题:How do I calculate someone's age in C#?。假设我想确定一个出生日期是否让一个人超过21岁。我可以这样做:
:visited
这里我只有一行代码来获取年龄。另一个问题中的方法有两个或更多 - 这就是我要问的原因。我的方法是慢还是什么?
答案 0 :(得分:0)
看起来很好。您链接的另一个问题是不同的,因为它计算年龄。你不关心实际的年龄 - 你只想知道它是否大于21岁。
答案 1 :(得分:0)
我认为这是好的方法。你说的是速度(你的方法比较慢或没问题),我没有看到任何其他快速方法检查年龄是21岁或以上。
以下代码只是另一种方式:
if (dateOfBirth.AddYears(21).Date <= DateTime.Now.Date)
{
//Do something because the person is over 21.
}
它类似于你的代码,只是不减少日期,而是递增和比较。
我有一个想法,添加比减法更快,所以我在上面建议,但只是意识到
添加和减去之间的唯一区别是发生反转。因此,添加和减去之间的任何时间差异都是可忽略的,并且比CPU时钟周期短得多。由于CPU只在时钟上前进,因此加/减相同的速度都是相同的。