【问题标题】:Age in years from DateTime (Date of birth) [duplicate]从日期时间(出生日期)算起的年龄 [重复]
【发布时间】:2010-10-14 23:32:15
【问题描述】:

复制

How Can I calculate Someone's Age in C#?

我有一个代表用户出生日期的datetime 变量。

我如何从中得到年龄?

更新 我想要一个精确的生日,比如 30.45 岁左右。

【问题讨论】:

标签: c# datetime


【解决方案1】:

尝试以下操作(假设出生日期存储在dtDOB):

public int getAgeInYears {
  TimeSpan tsAge = DateTime.Now.Subtract(dtDOB);

  return new DateTime(tsAge.Ticks).Year - 1;
}

【讨论】:

  • 这错了! DateTime.Subtract() 返回时间跨度,而不是 DateTime。
【解决方案2】:

从 Jeff 问题的答案中窃取:

DateTime now = DateTime.Now;
int age = now.Year - bday.Year;
if (now < bday.AddYears(age)) age--;

【讨论】:

  • 厚颜无耻,但值得加分
【解决方案3】:

您可以尝试使用(在 Vb 中):

    Dim dateOfBirth As Date

    Now.Subtract(dateOfBirth).TotalDays \ 365

\是Vb中的整数除法,不知道在C#中有没有对应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 2021-08-21
    • 1970-01-01
    • 2019-08-12
    • 2013-08-30
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多