用C#计算年龄

本文关键字:计算 | 更新日期: 2023-09-27 18:25:01

有人能帮我写一些代码吗?根据以年为单位的出生日期计算特定日期的年龄。

我正在数据库中捕获出生日期和诊断日期,并想通过诊断日期计算年龄(以年为单位)。

partial void AgeAtDiagnosis_Compute(ref string result)
    {
        // Set result to the desired field value
    }

用C#计算年龄

DateTime birth = new DateTime(1950, 01, 01);
DateTime diagnosis = new DateTime(2012, 02, 01);
TimeSpan Span = diagnosis - birth;
DateTime Age = DateTime.MinValue + Span;
// note: MinValue is 1/1/1 so we have to subtract...
int Years = Age.Year - 1;
TimeSpane age0 = this.DateOfDiagnosis - this.DateOfBirth;
int age1 = (int) Math.Trunc( age0.TotalDays / 365.25);

您只需将一个日期与另一个日期相减即可获得TimeSpan。它有一个TotalDays属性,您可以从中派生年份。这取决于你想要的准确度:

var ageInDays = (diagnoticDate - dateOfBirth).TotalDays;  
var age = Convert.ToInt32(ageInDays / 365);

显然闰年会导致问题,因此另一种选择是检查每个日期的年、月和日属性,并在考虑部分年份等的情况下单独计算它们的差异。