年份增加1:
uses DateUtils;
procedure TForm1.Button3Click(Sender: TObject);
var
a,b:TDateTime;
begin
a:=StrToDateTime(Label2.Caption);
b:=IncYear(a);
ShowMessage(DateTimeToStr(b));
end;
日期时间差:
Delphi中表示时间通常使用TDateTime类型,这个类型实际上是Double类型。整数部分表示自12/30/1899以来的天数,而小数部分是将不足一天的部分除以24小时,如上午6点是0.25。要进行时间运算只需要直接进行加减就可以了。
确切的计算公式是:
Time := (Hour * 3600000 + Min * 60000 + Sec * 1000 + MSec) / MSecsPerDay;
其中MSecsPerDay是每天所拥有的秒数。除不尽也没有什么关系,Double类型的精度完全可以保证你在转换DateTime类型转换为String类型时不会出错。
procedure TForm1.Button2Click(Sender: TObject);
var
a,b,c:TDateTime;
begin
a:=Now;
b:=StrToDateTime('2010-08-03 12:33:44');
c:=a-b; //c就是相差的时间,以天为单位
ShowMessage(FloatToStr(c));
end;
procedure TForm1.Button2Click(Sender: TObject);
var
a,b:TDateTime;
begin
a:=Now;
b:=StrToDateTime(edt3.Text);
ShowMessage(FormatFloat('#.0',24*(a-b)));
end;
声明为:function FormatDateTime(const Format string; DateTime TDateTime) string; overload;
当然和Format一样还有一种,但这里只介绍常用的第一种Format参数是一个格式化字符串。DateTime是时间类型。返回值是一种格式化后的字符串
重点来看Format参数中的指令字符
c 以短时间格式显示时间,即全部是数字的表示
FormatdateTime('c',now); //输出为:2004-8-7 95540
d 对应于时间中的日期,日期是一位则显示一位,两位则显示两位
FormatdateTime('d',now); //输出可能为1~31
dd 和d的意义一样,但它始终是以两位来显示的
FormatdateTime('dd',now); //输出可能为01~31
ddd 显示的是星期几
FormatdateTime('ddd',now); //输出为 星期六
dddd 和ddd显示的是一样的。但上面两个如果在其他国家可能不一样。
ddddd 以短时间格式显示年月日
FormatdateTime('ddddd',now);//输出为:2004-8-7
dddddd 以长时间格式显示年月日
FormatdateTime('dddddd',now); //输出为:2004年8月7日
e|ee 以相应的位数显示年
FormatdateTime('ee',now); //输出为:04 (表示04年)
m|mm|mmm|mmmm
表示月
FormatdateTime('m',now); //输出为:8
FormatdateTime('mm',now); //输出为 08
FormatdateTime('mmm',now); //输出为 八月
FormatdateTime('mmmm',now); //输出为 八月
和ddddddd 一样,在其他国家可能不同
yyyy 表示年
FormatdateTime('yy',now); //输出为 04
FormatdateTime('yyyy',now); //输出为 2008
hhh,nnn,sss,zzzz 分别表示小时,分,秒,毫秒
t 以短时间格式显示时间
FormatdateTime('t',now); //输出为 1017
tt 以长时间格式显示时间
FormatdateTime('tt',now); //输出为101846
ampm 以长时间格式显示上午还是下午
FormatdateTime('ttampm',now);//输出为:102257上午
大概如此,如果要在Format中加普通的字符串,可以用双引号隔开那些特定义的字符,这样普通字符串中如果含特殊的字符就不会被显示为时间格式啦:
FormatdateTime('today is c',now);//输出为:today is 2004-8-7 102658
时间中也可以加-或来分开日期:
FormatdateTime('today is yy-mm-dd',now);//输出为: today is 04-08-07
FormatdateTime('today is yymmdd',now); //输出为: today is 040807
也可以用来分开时间
FormatdateTime('today is hhnnss',now); //输出为:today is 103223