怎么计算一个人的年龄,能精确到月/天的
如何计算一个人的年龄,能精确到月/天的。
最好能简单些。
------解决方案--------------------
最好能简单些。
------解决方案--------------------
- Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject); function CalTwoDateDiff(vBeginDate,vEndDate: TDateTime): String; var iYear,iMonth,iDays,iHours,iMinutes: Integer; str: String; begin iYear :=YearsBetween(vEndDate,strtodate(formatdatetime('yyyy-mm-dd',vBeginDate))); iMonth := MonthsBetween(IncYear(vEndDate,-iYear),strtodate(formatdatetime('yyyy-mm-dd',vBeginDate))); iDays := DaysBetween(IncMonth(vEndDate,-MonthsBetween(vEndDate,strtodate(formatdatetime('yyyy-mm-dd',vBeginDate)))), strtodate(formatdatetime('yyyy-mm-dd',vBeginDate))); iHours := HoursBetween(IncDay(vEndDate,-DaysBetween(vEndDate,strtodate(formatdatetime('yyyy-mm-dd',vBeginDate)))), strtodateTime(formatdatetime('yyyy-mm-dd hh:mm:ss',vBeginDate))); iMinutes := MinutesBetween(IncHour(vEndDate,-HoursBetween(vEndDate,strtodateTime(formatdatetime('yyyy-mm-dd hh:mm:ss',vBeginDate)))), strtodateTime(formatdatetime('yyyy-mm-dd hh:mm:ss',vBeginDate))); str := ''; if iYear>0 then str := str + IntToStr(iYear)+'年'; if iMonth>0 then str := str + IntToStr(iMonth)+'月'; if iDays>0 then str := str + IntToStr(iDays)+'天'; if iHours>0 then str := str + IntToStr(iHours)+'小时'; if iMinutes>0 then str := str + IntToStr(iMinutes)+'分钟'; Result := str; end; begin DateSeparator := '-'; showmessage('你已经活了 '+CalTwoDateDiff(datetimepicker1.datetime,now())+ ',够长的了'); end;