我在C#中有两个DateTime对象,分别是birthDateTime和curDateTime。
现在,我想计算一下当前日期时间和某人生日之间的年份差。我想做一些像这样的事情
int years = curDateTime- birthDateTime;
//If years difference is greater than 5 years, do something.
if(years > 5)
....发布于 2010-11-09 08:29:03
听起来你是在试图用人们通常回答的方式来计算一个人的年龄。
有关解决方案,请参阅Calculate age in C#。
发布于 2010-11-09 08:26:48
减法运算符将产生TimeSpan结构。然而,“年”的概念不适用于时间跨度,因为一年中的天数不是恒定的。
TimeSpan span = curDateTime - birthDateTime;
if (span.TotalDays > (365.26 * 5)) { ... }如果你想要比这更精确的东西,你必须手动检查你的DateTime结构的年/月/日。
发布于 2010-11-09 08:35:10
您可以使用AddYears方法并检查条件是否为Year属性。
var d3 = d1.AddYears(-d2.Year);
if ((d1.Year - d3.Year) > 5)
{
var ok = true;
}您将需要处理无效的年份,例如2010 - 2010将导致异常。
https://stackoverflow.com/questions/4129356
复制相似问题