首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中计算两个DateTime对象之间的差异

在C#中计算两个DateTime对象之间的差异
EN

Stack Overflow用户
提问于 2010-11-09 08:23:16
回答 5查看 7.7K关注 0票数 1

我在C#中有两个DateTime对象,分别是birthDateTime和curDateTime。

现在,我想计算一下当前日期时间和某人生日之间的年份差。我想做一些像这样的事情

代码语言:javascript
复制
int years = curDateTime- birthDateTime;
//If years difference is greater than 5 years, do something.
  if(years > 5)
    ....
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-09 08:29:03

听起来你是在试图用人们通常回答的方式来计算一个人的年龄。

有关解决方案,请参阅Calculate age in C#

票数 0
EN

Stack Overflow用户

发布于 2010-11-09 08:26:48

减法运算符将产生TimeSpan结构。然而,“年”的概念不适用于时间跨度,因为一年中的天数不是恒定的。

代码语言:javascript
复制
TimeSpan span = curDateTime - birthDateTime;
if (span.TotalDays > (365.26 * 5)) { ... }

如果你想要比这更精确的东西,你必须手动检查你的DateTime结构的年/月/日。

票数 1
EN

Stack Overflow用户

发布于 2010-11-09 08:35:10

您可以使用AddYears方法并检查条件是否为Year属性。

代码语言:javascript
复制
var d3 = d1.AddYears(-d2.Year);

if ((d1.Year - d3.Year) > 5)
{
    var ok = true;
}

您将需要处理无效的年份,例如2010 - 2010将导致异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4129356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档