我在C#中有两个DateTime对象,比如birthDateTime和curDateTime。
现在,我想计算当前日期时间和某人生日的年差。我想做像
这样的事情int years = curDateTime- birthDateTime;
//If years difference is greater than 5 years, do something.
if(years > 5)
....
答案 0 :(得分:1)
减法运算符将生成TimeSpan结构。然而,“年”的概念不适用于时间跨度,因为一年中的天数不是恒定的。
TimeSpan span = curDateTime - birthDateTime;
if (span.TotalDays > (365.26 * 5)) { ... }
如果你想要比这更精确的东西,你必须手动检查你的DateTime结构的年/月/日。
答案 1 :(得分:0)
听起来你正试图以人们在被问及年龄时的反应方式来计算一个人的年龄。
有关解决方案,请参阅Calculate age in C#。
答案 2 :(得分:0)
您可以使用AddYears
方法并检查条件Year
属性。
var d3 = d1.AddYears(-d2.Year);
if ((d1.Year - d3.Year) > 5)
{
var ok = true;
}
您需要处理无效年份,例如2010 - 2010
会导致异常。
答案 3 :(得分:0)
if (birthDateTime.AddYears(5) < curDateTime)
{
// difference is greater than 5 years, do something...
}
答案 4 :(得分:0)
DateTime someDate = DateTime.Parse("02/12/1979");
int diff = DateTime.Now.Year - someDate.Year;
这是它,没有例外或任何东西......