我必須存儲用戶的年齡(年,月,日......可能是幾小時,幾分鐘,幾秒)。我正在使用C++和boost。我應該使用哪種增強類來存儲人類年齡
我不確定我應該用什麼類的boost::posix_time
(或boost::date_time
)。
我試過boost::posix_time::time_duration
,但因爲沒有構造以一年計,這只是時間不是很明顯,所以我所做的:
boost::posix_time::time_duration age = boost::posix_time::hours(24*365*ageInYears);
但我不知道這是因爲所有年份的好策略沒有365天;-)
我也試過boost::gregorian::date
,但這很棘手,因爲這個不允許在1400之前存儲year
(這存儲日期,而不是持續時間)。
- 我不想存儲用戶的出生日期,因爲我需要在程序運行時存儲它的年齡(醫療數據)。
- 我不想存儲常規的
int
,因爲它不夠準確(24歲+ 11個月差不多25)。 - 我不想存儲
float
,因爲我不希望重塑與浮動年齡轉換輪我會做...
難道真的沒有階級使其易於存儲幾年,可選地增加幾個月和幾天?
理想的情況下,爲30歲半的一個傢伙,我希望能夠建立這樣一個對象:boost::....... theAge(30, 6, 0);
然後:
- 有一個函數來獲取年齡歲: theAge.years()返回30(忽略月)
- 可能有一個轉換浮動,這將使我爲30.5年齡
「我不希望存儲出生日期用戶」所以,計算差值(CURRENT_TIME - DATE_OF_BIRTH )作爲'boost :: posix_time :: time_duration'。我不認爲1400是醫療計劃的真正限制。 –
問題是我實際上並不知道患者的出生日期....醫生直接輸入年齡作爲輸入。 – jpo38
如果醫生進入一個年齡段,則從中計算一個DOB。 –