*****求一时间函数:得到当前时间减去天数(月数)的日期!!

jltt 2003-01-27 09:43:02
*****求一时间函数:得到当前时间减去天数(月数)的日期!!
...全文
361 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiufengy 2003-02-05
  • 打赏
  • 举报
回复
//2000-1-5 2000-1-15---------------->10
Function CompareDateOfInt(MyDateTime1,MyDateTime2:TDateTime):Integer;
Var
dd1,dd2:Integer;
YY,YY1,YY2:Integer;
TT,kk:Integer;
Begin
kk:=0;
YY:=CompareYearOfInt(MyDateTime1,MyDateTime2);
If CompareTwoDay(MyDateTime1,MyDateTime2)<2 then
Begin
DD1:=MyDateOfThisYear(MyDateTime1);
DD2:=AllDateOfThisYear(MyDateTime2)-MyDateOfThisYear(MyDateTime2);
yy1:=MyYearOfInt(MyDateTime1);
yy2:=MyYearOfInt(MyDateTime2);
for TT:=(yy2+1) To yy1-1 do
Begin
If (TT Mod 4) =0 then Inc(kk);
If (TT Mod 100) =0 then Dec(kk);
If (TT Mod 400) =0 then Inc(kk);
End;
kk:=KK+(yy-1)*365+DD1+dd2;
End
Else
Begin
DD1:=MyDateOfThisYear(MyDateTime2);
DD2:=AllDateOfThisYear(MyDateTime1)-MyDateOfThisYear(MyDateTime1);
yy1:=MyYearOfInt(MyDateTime2);
yy2:=MyYearOfInt(MyDateTime1);
for TT:=(yy2+1) To yy1-1 do
Begin
If (TT Mod 4) =0 then Inc(kk);
If (TT Mod 100) =0 then Dec(kk);
If (TT Mod 400) =0 then Inc(kk);
End;
kk:=KK+(yy-1)*365+DD1+dd2;
End;
Result:=kk;
End;

//2001-1-1 ------------>'2001年'
Function MyYearNameStr(MyDateTime:TDateTime):String;
Begin
Result:=MyYearOfStr(MyDateTime)+'年';
End;

//2001-1-1 ------------>'2001年1季度'
Function MyJiDuNameStr(MyDateTime:TDateTime):String;
Begin
Result:=MyYearOfStr(MyDateTime)+'年'+MyJiDuOfStr(MyDateTime)+'季度';
End;
//2001-1-1 ------------>'2001年1月'
Function MyMonthNameStr(MyDateTime:TDateTime):String;
Begin
Result:=MyYearOfStr(MyDateTime)+'年'+MyMonthOfStr(MyDateTime)+'月';
End;
//2001-1-1 ------------>'2001年1月1日'
Function MyDateNameStr(MyDateTime:TDateTime):String;
Begin
Result:=MyYearOfStr(MyDateTime)+'年'+MyMonthOfStr(MyDateTime)+'月'+MyDateOfStr(MyDateTime)+'日';
End;
//2001-1-12------------>2001-1-1
Function MyYearStart(MyDateTime:TDateTime):TDateTime;
Begin
Result:=StrToDate(MyYearOfStr(MyDateTime)+'-1-1');
End;
//2001-1-12------------>2002-1-1
Function MyYearEnd(MyDateTime:TDateTime):TDateTime;
Begin
Result:=StrToDate(IntTostr(MyYearOfInt(MyDateTime)+1)+'-1-1');
End;
//2001-1-12------------>2001-1-1
Function MyMonthStart(MyDateTime:TDateTime):TDateTime;
Begin
Result:=StrToDate(MyYearOfStr(MyDateTime)+'-'+MyMonthOfStr(MyDateTime)+'-1');
End;
//2001-1-12------------>2001-2-1
Function MyMonthEnd(MyDateTime:TDateTime):TDateTime;
Var
LLL:Integer;
Begin
LLL:=MyMonthOfInt(MyDateTime);
If LLL=12 then Result:=MyYearEnd(MyDateTime)
Else Result:=StrToDate(MyYearOfStr(MyDateTime)+'-'+IntToStr(MyMonthOfInt(MyDateTime)+1)+'-1');
End;
//2001-1-12------------>2001-1-1
Function MyJiDuStart(MyDateTime:TDateTime):TDateTime;
Var
PP:String;
Begin
Case MyJiDuOfInt(MyDateTime) Of
1:PP:=MyYearOfStr(MyDateTime)+'-1-1';
2:PP:=MyYearOfStr(MyDateTime)+'-4-1';
3:PP:=MyYearOfStr(MyDateTime)+'-7-1';
4:PP:=MyYearOfStr(MyDateTime)+'-10-1';
end;
Result:=StrToDate(PP);
End;
//2001-1-12------------>2001-4-1
Function MyJiDuEnd(MyDateTime:TDateTime):TDateTime;
Var
PP:String;
Begin
Case MyJiDuOfInt(MyDateTime) Of
1:PP:=MyYearOfStr(MyDateTime)+'-4-1';
2:PP:=MyYearOfStr(MyDateTime)+'-7-1';
3:PP:=MyYearOfStr(MyDateTime)+'-10-1';
4:PP:=IntTostr(MyYearOfInt(MyDateTime)+1)+'-1-1';
End;
Result:=StrToDate(PP);
End;
//返回本周的第一天,即周日
Function MyWeekStart(MyDateTime:TDateTime):TDateTime;
Begin
Result:=MyDateTime-DayOfWeek(MyDateTime)+1;
End;
//返回下周的第一天,即周日
Function MyWeekEnd(MyDateTime:TDateTime):TDateTime;
Begin
Result:=MyDateTime-DayOfWeek(MyDateTime)+8;
End;
//返回前n年 2001-1-1,-3--------->1998-1-1
//防止出现1999-2-29
Function MyMoveYear(MyDateTime:TDateTime;N:Integer):TDateTime;
Var
TT:Boolean;
YY,MM,DD:String;
GG:TDateTime;
Begin
TT:=False;
YY:=IntToStr(MyYearOfInt(MyDateTime)+N);
MM:=MyMonthOfStr(MyDateTime);
DD:=MyDateOfStr(MyDateTime);
If (MM='2') and (DD='29') then
Begin
DD:='28';
TT:=True;
End;
GG:=StrToDate(YY+'-'+MM+'-'+DD);
If (AllDateOfThisYear(GG)=366) and TT then GG:=GG+1;
Result:=GG;
End;
//返回前n月 2001-1-1,3--------->2001-4-1
//防止出现1999-2-29
Function MyMoveMonth(MyDateTime:TDateTime;N:Integer):TDateTime;
Var
MM,DD,MMy:Integer;
YY,DD1:TDateTime;
MMM:Array[1..12]of Integer;
Begin

MM:=(MyMonthOfInt(MyDateTime)+N) Mod 12;
If N<0 then MM:=12+MM;
If MM=0 then MM:=12;

DD:=MyDateOfInt(MyDateTime);
MMy:=(MyMonthOfInt(MyDateTime)+N) Div 12;
If N<0 then MMy:=MMy-1;
if (MM=12) and (N>=0) then MMy:=MMy-1;
YY:=MyMoveYear(MyDateTime,MMy);
DD1:=StrTodate(MyYearOfStr(YY)+'-'+IntTostr(MM)+'-1');
if AllDateOfThisYear(DD1)=366 then mmm[2]:=29 else MMM[2]:=28;
MMM[1]:=31;
MMM[3]:=31;
MMM[4]:=30;
MMM[5]:=31;
MMM[6]:=30;
MMM[7]:=31;
MMM[8]:=31;
MMM[9]:=30;
MMM[10]:=31;
MMM[11]:=30;
MMM[12]:=31;
If DD>MMM[MM] then DD:=MMM[MM];
result:=DD1+DD-1;
End;
//返回前n季度 2001-11-1,3--------->2001-1-1
//防止出现1999-2-29
Function MyMoveJiDu(MyDateTime:TDateTime;N:Integer):TDateTime;
Begin
result:=MyMoveMonth(MyDateTime,N*3);
End;
//返回前n周第一天
Function MyMoveWeek(MyDateTime:TDateTime;N:Integer):TDateTime;
Begin
Result:=MyWeekStart(MyDateTime)+N*7;
End;
//返回前n天
Function MyMoveDate(MyDateTime:TDateTime;N:Integer):TDateTime;
Begin
result:=MyDateTime+N;
End;
//2001-1-1 ------------>'2001年上半年'
Function MyBanNameStr(MyDateTime:TDateTime):String;
Begin
if MyJiDuOfInt(MyDateTime)<=2 then result:=MyYearOfStr(MyDateTime)+'年上半年'
Else result:=MyYearOfStr(MyDateTime)+'年下半年';
End;
//2001-3-11 ------------>2001-1-1
//2001-7-11 ------------>2001-7-1
Function MyBanStart(MyDateTime:TDateTime):TDateTime;
Begin
If MyMonthOfInt(MyDateTime)<=6 Then Result:=MyYearStart(MyDateTime)
Else Result:=MyMoveMonth(MyYearStart(MyDateTime),6);
End;
//2001-3-11 ------------>2001-7-1
//2001-3-11 ------------>2002-1-1
Function MyBanEnd(MyDateTime:TDateTime):TDateTime;
Begin
If MyMonthOfInt(MyDateTime)<=6 Then Result:=MyMoveMonth(MyYearStart(MyDateTime),6)
Else Result:=MyMoveMonth(MyYearStart(MyDateTime),12);
End;
//2001-3-11,2------------>2002-3-11
Function MyMoveBan(MyDateTime:TDateTime;N:Integer):TDateTime;
Begin
result:=MyMoveMonth(MyDateTime,6*N);
End;


end.
xiufengy 2003-02-05
  • 打赏
  • 举报
回复
//2002-10-1---------------->'2002'
Function MyYearOfStr(MyDateTime:TDateTime):String;
Var
MyDate:string;
Begin
MyDate:=DateTostr(MyDateTime);
result:=Copy(MyDate,1,4);
End;

//2002-10-1---------------->'10'
Function MyMonthOfStr(MyDateTime:TDateTime):String;
Var
MyDate:string;
Begin
MyDate:=DateTostr(MyDateTime);
result:=IntToStr(PLstrtoInt(Copy(MyDate,6,2)));
End;

//2002-10-1---------------->'1'
Function MyDateOfStr(MyDateTime:TDateTime):String;
Var
MyDate:string;
Begin
MyDate:=DateTostr(MyDateTime);
result:=IntToStr(Abs(PLstrtoInt(Copy(MyDate,Length(MyDate)-1,2))));
End;

//2002-10-1---------------->'3'
Function MyJiDuOfStr(MyDateTime:TDateTime):String;
Begin
Result:=IntToStr(MyJiDuOfInt(MyDateTime));
End;


//2002-10-1---------------->2002
Function MyYearOfInt(MyDateTime:TDateTime):Integer;
Var
MyDate:string;
Begin
MyDate:=DateTostr(MyDateTime);
result:=PLstrtoInt(Copy(MyDate,1,4));
End;

//2002-10-1---------------->10
Function MyMonthOfInt(MyDateTime:TDateTime):Integer;
Var
MyDate:string;
Begin
MyDate:=DateTostr(MyDateTime);
result:=PLstrtoInt(Copy(MyDate,6,2));
End;

//2002-10-1---------------->1
Function MyDateOfInt(MyDateTime:TDateTime):Integer;
Var
MyDate:string;
Begin
MyDate:=DateTostr(MyDateTime);
result:=Abs(PLstrtoInt(Copy(MyDate,Length(MyDate)-1,2)));
End;

//2002-10-1---------------->3
Function MyJiDuOfInt(MyDateTime:TDateTime):Integer;
Var
MyMonth:Integer;
Begin
MyMonth:=MyMonthOfInt(MyDateTime);
Result:=(MyMonth+2) Div 3;
End;

//2002-1-5---------------->5
//2002-2-5---------------->36
Function MyDateOfThisYear(MyDateTime:TDateTime):Integer;
Var
MMMM:Array[1..12] of Integer;
i,kk:Integer;
Begin
if AllDateOfThisYear(MyDateTime)=366 then mmmm[2]:=29 else MMMM[2]:=28;
MMMM[1]:=31;
MMMM[3]:=31;
MMMM[4]:=30;
MMMM[5]:=31;
MMMM[6]:=30;
MMMM[7]:=31;
MMMM[8]:=31;
MMMM[9]:=30;
MMMM[10]:=31;
MMMM[11]:=30;
MMMM[12]:=31;
kk:=0;
For I:=1 to MyMonthOfInt(MyDateTime)-1 Do
begin
KK:=KK+MMMM[i];
end;
KK:=KK+MyDateOfInt(MyDateTime);
result:=kk;
End;

//2002-1-5---------------->365
//2000-1-5---------------->366
//2004-1-5---------------->366
//1800-1-5---------------->365
Function AllDateOfThisYear(MyDateTime:TDateTime):Integer;
Var
yy,kk:Integer;
Begin
yy:=MyYearOfInt(MyDateTime);
if (yy mod 4)=0 then kk:=366 else kk:=365;
if (yy mod 100)=0 then Dec(kk);
if (yy mod 400)=0 then Inc(kk);
Result:=kk;
End;

//2000-1-5 2004-1-5---------------->4
Function CompareYearOfInt(MyDateTime1,MyDateTime2:TDateTime):Integer;
Var
YY1,YY2:Integer;
Begin
YY1:=MyYearOfInt(MyDateTime1);
YY2:=MyYearOfInt(MyDateTime2);
Result:=abs(YY1-yy2);
End;

//2000-1-5 2001-3-15---------------->4
//2001-3-15 2000-1-5---------------->4
Function CompareJiDuOfInt(MyDateTime1,MyDateTime2:TDateTime):Integer;
Var
YY,JJ1,JJ2:Integer;
Begin
YY:=CompareYearOfInt(MyDateTime1,MyDateTime2);
JJ1:=MyJiDuOfInt(MyDateTime1);
JJ2:=MyJiDuOfInt(MyDateTime2);
If CompareTwoDay(MyDateTime1,MyDateTime2)<2 then
Result:=abs(YY*4+(jj1-jj2))
else
Result:=abs(YY*4+(jj2-jj1));
End;

//2000-1-5 2001-3-15---------------->14
Function CompareMonthOfInt(MyDateTime1,MyDateTime2:TDateTime):Integer;
Var
yy,mm1,mm2:Integer;
Begin
YY:=CompareYearOfInt(MyDateTime1,MyDateTime2);
MM1:=MyMonthOfInt(MyDateTime1);
MM2:=MyMonthOfInt(MyDateTime2);
If CompareTwoDay(MyDateTime1,MyDateTime2)<2 then
Result:=abs(YY*12+(mm1-mm2))
else
Result:=Abs(YY*12+(mm2-mm1));
End;

//2000-1-5 2001-3-15---------------->2
//2003-1-5 2001-3-15---------------->1
//2000-1-5 2000-1-5---------------->0
Function CompareTwoDay(MyDateTime1,MyDateTime2:TDateTime):Integer;
Var
YY1,YY2:String;
MM1,MM2:Integer;
MMM1,MMM2:String;
DD1,DD2:Integer;
kk1,kk2,DDD1,DDD2:String;
Begin
Result:=0;
YY1:=MyYearOfStr(MyDateTime1);
YY2:=MyYearOfStr(MyDateTime2);
MM1:=MyMonthOfInt(MyDateTime1);
MM2:=MyMonthOfInt(MyDateTime2);
MMM1:=MyMonthOfStr(MyDateTime1);
MMM2:=MyMonthOfStr(MyDateTime2);
DD1:=MyDateOfInt(MyDateTime1);
DD2:=MyDateOfInt(MyDateTime2);
DDD1:=MyDateOfStr(MyDateTime1);
DDD2:=MyDateOfStr(MyDateTime2);
If MM1<10 then KK1:=YY1+'0'+MMM1 else KK1:=YY1+MMM1;
If DD1<10 then KK1:=KK1+'0'+DDD1 else KK1:=kk1+DDD1;
If MM2<10 then KK2:=YY2+'0'+MMM2 else KK2:=yy2+MMM2;
If DD2<10 then KK2:=KK2+'0'+DDD2 else KK2:=kk2+DDD2;
If PlStrToInt(KK1)>PlStrToInt(KK2) then Result:=1;
If PlStrToInt(KK1)<PlStrToInt(KK2) then Result:=2;
If PlStrToInt(KK1)=PlStrToInt(KK2) then Result:=0;
End;

xiufengy 2003-02-05
  • 打赏
  • 举报
回复
自己做的时间函数,delphi5下直接用,大家不要笑,提提意见
unit Str;

interface
uses SysUtils;
Function mystringF(ss:string;zsw:integer;xsw:integer):string;
Function PLFloatTostrF(ss1:double;zsw:integer;xsw:integer):string;
Function PLstrtoFloat(ss:string):Extended;
Function PLstrtoInt(ss:string):Int64;
Function PLstrtoNotFuHao(ss:string):String;

Function PLstrIsPY(ss:string):Boolean;

Function MyYearOfStr(MyDateTime:TDateTime):String;
Function MyMonthOfStr(MyDateTime:TDateTime):String;
Function MyDateOfStr(MyDateTime:TDateTime):String;
Function MyJiDuOfStr(MyDateTime:TDateTime):String;
Function MyYearOfInt(MyDateTime:TDateTime):Integer;
Function MyMonthOfInt(MyDateTime:TDateTime):Integer;
Function MyDateOfInt(MyDateTime:TDateTime):Integer;
Function MyJiDuOfInt(MyDateTime:TDateTime):Integer;
Function MyDateOfThisYear(MyDateTime:TDateTime):Integer;
Function AllDateOfThisYear(MyDateTime:TDateTime):Integer;
Function CompareYearOfInt(MyDateTime1,MyDateTime2:TDateTime):Integer;
Function CompareJiDuOfInt(MyDateTime1,MyDateTime2:TDateTime):Integer;
Function CompareMonthOfInt(MyDateTime1,MyDateTime2:TDateTime):Integer;
Function CompareTwoDay(MyDateTime1,MyDateTime2:TDateTime):Integer;
Function CompareDateOfInt(MyDateTime1,MyDateTime2:TDateTime):Integer;
Function MyJiDuNameStr(MyDateTime:TDateTime):String;
Function MyJiDuStart(MyDateTime:TDateTime):TDateTime;
Function MyJiDuEnd(MyDateTime:TDateTime):TDateTime;
Function MyYearNameStr(MyDateTime:TDateTime):String;
Function MyMonthNameStr(MyDateTime:TDateTime):String;
Function MyDateNameStr(MyDateTime:TDateTime):String;
Function MyYearStart(MyDateTime:TDateTime):TDateTime;
Function MyYearEnd(MyDateTime:TDateTime):TDateTime;
Function MyMonthStart(MyDateTime:TDateTime):TDateTime;
Function MyMonthEnd(MyDateTime:TDateTime):TDateTime;
Function MyWeekStart(MyDateTime:TDateTime):TDateTime;
Function MyWeekEnd(MyDateTime:TDateTime):TDateTime;
Function MyMoveYear(MyDateTime:TDateTime;N:Integer):TDateTime;
Function MyMoveMonth(MyDateTime:TDateTime;N:Integer):TDateTime;
Function MyMoveJiDu(MyDateTime:TDateTime;N:Integer):TDateTime;
Function MyMoveWeek(MyDateTime:TDateTime;N:Integer):TDateTime;
Function MyMoveDate(MyDateTime:TDateTime;N:Integer):TDateTime;

Function MyBanNameStr(MyDateTime:TDateTime):String;
Function MyBanStart(MyDateTime:TDateTime):TDateTime;
Function MyBanEnd(MyDateTime:TDateTime):TDateTime;
Function MyMoveBan(MyDateTime:TDateTime;N:Integer):TDateTime;


implementation

Function mystringF(ss:string;zsw:integer;xsw:integer):string;
var
i:integer;
begin
if Length(trim(ss))=0 then ss:='0';
ss:=floattostrF(round(strtofloat(trim(ss))*100)/100,ffFixed,zsw,xsw);
//ss:=strtofloat(trim(ss))
if Length(ss)<(zsw+xsw+1) then
for i:=0 to (zsw+xsw-Length(ss)) do
ss:=' '+ss;
result:=ss;
end;

Function PLFloatTostrF(ss1:double;zsw:integer;xsw:integer):string;
var
i:integer;
pls:string;
begin
pls:=floattostrF(ss1,ffFixed,zsw,xsw);
if Length(pls)<(zsw+xsw+1) then
for i:=0 to (zsw+xsw-Length(pls)) do
pls:=' '+pls;
result:=pls;
end;

Function PLstrtoFloat(ss:string):Extended;
var
plst,pls,plss,plsss:string;
NOdian,NOjianhao,NOjiahao:boolean;
plf:double;
i:integer;
begin
plss:='';
NOdian:=true;
NOjianhao:=true;
NOjiahao:=true;

pls:=trim(ss);
for i:=1 to length(pls) do
begin
plst:=copy(pls,i,1);
if (plst='0') or (plst='1') or (plst='2') or
(plst='3') or (plst='4') or (plst='5') or
(plst='6') or (plst='7') or (plst='8') or
(plst='9') or
((plst='.') and Nodian) or
((plst='+') and Nojiahao) or
((plst='-') and Nojianhao)
then plss:=plss+plst;
if (plst='.') then Nodian :=false;
if (plst='+') then Nojiahao :=false;
if (plst='-') then Nojianhao :=false;
end;
Plsss:=copy(plss,1,1);
plst:='';
if (length(plss)>=2) then
begin
for i:=2 to length(plss) do
Begin
plst:=copy(plss,i,1);
if (plst<>'+') and (plst<>'-') then plsss:=plsss+plst;
End;
plf:=strtofloat(plsss);
end
else
begin
if (plss='-') Or (plss='+') Or (plss='') then plf:=0
else plf:=strtofloat(plss);
end;
result:=plf;
end;

Function PLstrtoInt(ss:string):Int64;
var
plst,pls,plss,plsss:string;
NOdian,NOjianhao,NOjiahao:boolean;
plf:Int64;
i:integer;
begin
plss:='';
NOdian:=true;
NOjianhao:=true;
NOjiahao:=true;

pls:=trim(ss);
for i:=1 to length(pls) do
begin
plst:=copy(pls,i,1);
if (plst='0') or (plst='1') or (plst='2') or
(plst='3') or (plst='4') or (plst='5') or
(plst='6') or (plst='7') or (plst='8') or
(plst='9') or
((plst='.') and Nodian) or
((plst='+') and Nojiahao) or
((plst='-') and Nojianhao)
then plss:=plss+plst;
if (plst='.') then Nodian :=false;
if (plst='+') then Nojiahao :=false;
if (plst='-') then Nojianhao :=false;
end;
Plsss:=copy(plss,1,1);
plst:='';
if (length(plss)>=2) then
begin
for i:=2 to length(plss) do
Begin
plst:=copy(plss,i,1);
if (plst<>'+') and (plst<>'-') then plsss:=plsss+plst;
End;
plf:=strtoInt(plsss);
end
else
begin
if (plss='-') Or (plss='+') Or (plss='') then plf:=0
else plf:=strtoInt(plss);
end;
result:=plf;
end;

Function PLstrtoNotFuHao(ss:string):String;
var
pls:string;
begin
pls:=trim(ss);
while Pos(' ', plS) > 0 do
plS[Pos(' ', plS)] := '0';
while Pos('''', plS) > 0 do
plS[Pos('''', plS)] := '0';
while Pos(':', plS) > 0 do
plS[Pos(':', plS)] := '0';
while Pos(';', plS) > 0 do
plS[Pos(';', plS)] := '0';
while Pos('"', plS) > 0 do
plS[Pos('"', plS)] := '0';
result:=pls;
end;

Function PLstrIsPY(ss:string):Boolean;
var
i:integer;
begin
result:=True;
if ss='' then
Begin
result:=false;
end
else
Begin
for i:=1 to Length(ss) do
if not (ss[i] in ['A'..'Z','a'..'z','0'..'9']) then result:=false;
end;
end;
火猴 2003-01-27
  • 打赏
  • 举报
回复
用DecodeDate函数,把日期分解,然后把日期减1,只需要判断如果是1号,则月份减1,需要判断大小月
lxl 2003-01-27
  • 打赏
  • 举报
回复
时间直接就可以减:
可以用这样得到天数
trunc(yourdate)-trunc(date)
kuangning 2003-01-27
  • 打赏
  • 举报
回复
formatdatetime('yyyy-mm-dd hh:mm:ss',now-3);
时间类型可以直接和数字类型进行加减
beata88 2003-01-27
  • 打赏
  • 举报
回复
请问一下楼主呀!!
时间类型要转成什么才能减去数字呀!!
lincanwen 2003-01-27
  • 打赏
  • 举报
回复
要引用DateUtils单元
lincanwen 2003-01-27
  • 打赏
  • 举报
回复
incmonth(now,1);当前日期的下一个月
incday(now,-1);昨天,
incday(now,1);明天
xzhifei 2003-01-27
  • 打赏
  • 举报
回复
日期时间型变量其实就是一个Double型,整数位代表天数,小数位代表时间(小时、分钟、秒钟、毫秒);
要处理日期型只要相加相减就就行了,至于月数,那就要加以判别大小月了。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧