我要写一个程序,要求给定两个日期求两者之间有多少个月(100分)

  • 主题发起人 主题发起人 liudaobin
  • 开始时间 开始时间
L

liudaobin

Unregistered / Unconfirmed
GUEST, unregistred user!
我要写一个程序,要求给定两个日期求两者之间有多少个月
如:1999-7-5 到 2003-12-31 之间有 53 个月
DELPHI中有无此类函数?
如果没有,请帮我写一个好吗?
请大家给予帮助,谢谢!!
 
(年2-年1)*12+(月2-月1)
如:(2003-1999)*12+(12-7)=53
 
使用DateUtils单元中的MonthsBetween函数
function MonthsBetween(const ANow, AThen: TDateTime): Integer;
 
同意楼上的,该单元还有很多日期时间的处理函数.
 
例:
ShowMessage(IntToStr(MonthsBetween(StrToDateTime('2000-1-1'),StrToDateTime('2000-5-6'))));

//ShowMessage 4
 
function MonthsBetween 行吗?我试试,可以的话我就结帖
 
谢谢大家了
 
fei_l:你的做法我曾用过,但在前一个日期比后一日期更晚时会减出负数
我写的
if YearS > YearE then
temYear:=YearS - YearE
else
temYear:=YearE - YearS;
if MonthS > MonthE then
begin
temMonth:=MonthS - MonthE ;
Cur := (temYear*12+temMonth)
end
else
begin
temMonth:=12 - MonthE + MonthS;
Cu:= ((temYear-1)*12+temMonth);
end;
但还有一个问题是,不満一个月的会不计,如:1999-2-5 到 1999-3-1 月数会为零
 

Similar threads

后退
顶部