[整理]当前日期的加减运算

在DateUtils(d7)里,有如下几个现成的函数 
function IncYear(const AValue: TDateTime; const ANumberOfYears: Integer = 1): TDateTime; 
// function IncMonth is in SysUtils 
function IncWeek(const AValue: TDateTime; const ANumberOfWeeks: Integer = 1): TDateTime; 
function IncDay(const AValue: TDateTime; const ANumberOfDays: Integer = 1): TDateTime; 
function IncHour(const AValue: TDateTime; const ANumberOfHours: Int64 = 1): TDateTime; 
function IncMinute(const AValue: TDateTime; const ANumberOfMinutes: Int64 = 1): TDateTime; 
function IncSecond(const AValue: TDateTime; const ANumberOfSeconds: Int64 = 1): TDateTime; 
function IncMilliSecond(const AValue: TDateTime; const ANumberOfMilliSeconds: Int64 = 1): TDateTime; 
你把增加的值设置成-1就可以得到前一(或N)年/月/日的日期了
扩冲例子如下: 
var 
  str:string; 
  d:TDateTime; 
begin 
  d:=now;            
  //yyyy-m-d h:n:s:zz 格式化组成:年-月-日 时:分:秒:毫秒 
  ShowMessage('当前时间:'+DateTimeToStr(d)); 

  str:=FormatDateTime('yyyy-mm-dd h:n:s:zz',d-1); //取得当前时间减一天 
  ShowMessage('当前时间减一天:'+str); 

  str:=FormatDateTime('yyyy-mm-dd h:n:s:zz',d-30); //取得当前时间减一月 
  ShowMessage('当前时间减一月:'+str); 

  str:=FormatDateTime('yyyy-mm-dd h:n:s:zz',d-1/24); //取得当前时间减一小时 
  ShowMessage('当前时间减一小时:'+str); 

  str:=FormatDateTime('yyyy-mm-dd h:n:s:zz',d-1/24/60); //取得当前时间减一分钟 
  ShowMessage('当前时间减一分钟:'+str); 

  str:=FormatDateTime('yyyy-mm-dd h:n:s:zz',d-1/24/60/1000/60); //取得当前时间减一毫秒 
  ShowMessage('当前时间减一毫秒:'+str); 
end;
posted @ 2014-12-31 23:21  绣春刀  阅读(239)  评论(0编辑  收藏  举报