2017-07-11 17 views
-1

私のデータベースでは年齢は1946年です。ログが2046になると、 はGlobal.ageを計算するために1946年が必要になります。 私のコードに何が間違っているのか尋ねてもよろしいですか? これは私のコードが間違っていますか?年齢の計算が正確でない

timespan = DateTime.Now.Subtract(Convert.ToDateTime(patientInfo[0].DOB)); 

Global.age = Convert.ToInt32(timespan.TotalDays)/365; 
log.EventLog("DoB: " + patientInfo[0].DOB); 
log.EventLog("Scan Page Age: " + timespan.ToString() + " " + Global.age.ToString()); 
this.NavigationService.Navigate(Global.bmiPage); 
+0

は(あなたが値を表示することができます)データがDOB列でどのようなものであるかに依存 –

+0

をところで、あなたが欲しいです'/ 365'で総年を得ることができますが、うるう年はどうですか? https://stackoverflow.com/questions/9/calculate-age-in-c-sharp(およびID 9 @ _ @のスーパー古い投稿) – Prisoner

+0

年齢は1946年とはどういう意味ですか?あなたは年が1946年であることを意味します – CodingYoshi

答えて

2

この方法に誕生日をパスし、それが年齢を返します。

private static int CalculateAge(DateTime dateOfBirth) 
{ 
    int age = 0; 
    age = DateTime.Now.Year - dateOfBirth.Year; 
    if (DateTime.Now.DayOfYear < dateOfBirth.DayOfYear) 
     age = age - 1; 

    return age; 
} 
+0

生年は1946 –

+0

@CheahEngTeongあなたが持っているものがすべて一年であれば、何日も何月も渡すことができます。したがって、あなたは次のような日付を渡すことができます: 'int age = CalculateAge(new DateTime(1946,1,1));' – CodingYoshi

関連する問題