2010-02-10 76 views

回答

6

嚴格地說,

TimeSpan age = DateTime.Now - dateTimePicker.Value; 

然而,找出某人的 「年齡」 只是稍微複雜一些。

int years = DateTime.Now.Year - dateTimePicker.Value.Year; 

if(dateTimePicker.Value.AddYears(years) > DateTime.Now) years--; 

由於多年長短不一,你必須這樣做而不是依賴於這樣的代表特定的時間量(同樣是搞清楚有多少「月」是真正之間的TimeSpan結構兩個日期,因爲月份的長度從28-31天不等)。

最後一行代碼是爲了解釋今年還沒有發生的人的生日。

+0

int years = DateTime.Now.Year - dateTimePicker.Value.Year; if(dateTimePicker.Value.AddYears(years)> DateTime.Now)years--; >>爲什麼當我在datetimepicker中添加該代碼....年齡不出現? – 2010-02-10 15:05:57

+0

@ malou17:添加該代碼不會使年齡出現,它只是計算它並將其放入一個變量中。你想如何出現? – 2010-02-10 15:21:56

+0

漂亮時尚的邏輯,datepicker的ValueChanged是您可以放置​​代碼的地方。 – Manny265 2017-02-09 01:32:11

0

假設的DateTimePicker被稱爲dtpBirthday:

int age = DateTime.Now.Year - dtpBirthday.Value.Year - (DateTime.Now.DayOfYear < dtpBirthday.Value.DayOfYear ? 1 : 0); 
+0

這不會佔當月晚些時候發生的生日。例如,如果我的生日恰巧是1901年2月24日,那麼這段代碼會說我已經109了,而我只是一個敏捷派108。 – 2010-02-10 14:56:37