属性或索引器不能分配给
我在数据库中记录了出生日期和诊断日期,并且想要根据诊断日期计算年龄。
这是我的代码。 但我有错误跟随错误。
错误2属性或索引器'LightSwitchApplication.Patient.AgeAtDiagnosis'不能分配给 - 它是只读的
partial void AgeAtDiagnosis_Compute(ref int result)
{
// Set result to the desired field value
AgeAtDiagnosis = DateofDiagnosis.Year - DateofBirth.Year;
if (DateofBirth > DateofDiagnosis.AddYears(-AgeAtDiagnosis))
{
AgeAtDiagnosis--;
}
}
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);
很明显,闰年会导致问题,所以另一种选择是检查每个日期的年,月和日属性,并根据部分年份等单独计算其差异
链接地址: http://www.djcxy.com/p/54359.html