读书人

怎么计算一个人的年龄能精确到月/天

发布时间: 2012-10-19 16:53:35 作者: rapoo

如何计算一个人的年龄,能精确到月/天的。
最好能简单些。

[解决办法]

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; 

读书人网 >.NET

热点推荐