2017-01-23 132 views
0

我正在開發一個簡單的程序,用於計算會員的年齡,並根據年齡應用正確的會員費。C#格式化TimeSpan以顯示日期

 public static DateTime DateTime() 
    { 
     DateTime birth = new System.DateTime(1991, 9, 20); 
     DateTime today = new System.DateTime(2017, 1, 22); 
     TimeSpan age = today - birth; 
     Console.WriteLine(age); 
     return birth; 
    } 

這裏是我使用的代碼,我的返回值是

9256.00:00:00 

如何可以解析到一個更可讀的YYYY,MM,DD的格式呢?

+2

那格式對於一個時間段沒有意義。 –

+0

你真的想要展示什麼? –

+0

如果你需要大多數人都能理解的「年齡」 - 整整一年的人數還活着 - 你可能需要使用http://stackoverflow.com/questions/9/how-do-i-calculate-someones-age- in-c只需幾年就可以得到結果。 –

回答

0

使用nodatime

var ld1 = new LocalDate(1991, 9, 20); 
var ld2 = new LocalDate(2017, 1, 22); 
var period = Period.Between(ld1, ld2); 

Debug.WriteLine(period.Years); 
Debug.WriteLine(period.Months); 
Debug.WriteLine(period.Days); 
+0

謝謝!這有助於我得到我需要的地方。 –

0

由於Jon Skeet所言:

時間跨度有60年「」沒有合理的概念,因爲它依賴於 起點和終點。

爲什麼你不試試他的Noda Time呢?

您可以手動下載here

您可以通過365.25(平均天數在一年中)也劃分,並獲得整數

Convert.ToInt32(age.Days/365.25); 
+0

如果您沒有任何內容可以添加到現有的其他問題答案中,則投票爲重複選項是更好的選擇。 –

+0

編輯添加一點答案。 –