需要计算任将一日期加上15天之后的日期,应该用什么函数?(50分)

  • 主题发起人 主题发起人 kapi
  • 开始时间 开始时间
K

kapi

Unregistered / Unconfirmed
GUEST, unregistred user!
需要计算任将一日期加上15天之后的日期,应该用什么函数?
我是这样写的
var
begindate,enddate:Tdata
begin
begindate:=2002-07-20;
enddate:=begindate+15;
showmessage(datetostr(enddate));
end;
运行后显示的结果不是2002-08-05;而是1905-05-20
为什么呢,
 
哈哈 ,
procedure TForm1.Button1Click(Sender: TObject);
var x :tdatetime ;
begin
x := now ();
x:= x + 15 ;
showmessage(datetostr(x))

end;
 
begindate:=2002-07-20;
改为
begindate:=strtodate('2002-07-20');
 
begindate,enddate:Tdata
也不对,改为:
begindate,enddate:tdatetime ;
 
看以下日期类型的定义就知道了。
 
你的运算是没有错的,只是
第一句赋值错了
应该为:
var
begindate,enddate:Tdata
begin
begindate := EncodeDate(2002, 07, 20);
enddate:=begindate+15;
showmessage(datetostr(enddate));
end;
这样就可以得到该得到的值了
其中EncodeDate函数是把年月日的参数编码为TDate类型
 
大家都说完了,我就不说了
 
Delphi: DateInc(dDate,15)
SQL: DateAdd(Day,15,@dDate)
 
难道说你们我这里的Delphi有问题?
我的解决方法很简单啊,如下:
(一个TDateTimePicker,一个TEdit,一个TButton)
在Button的OnClick事件中这样写:
Edit1.text := FormatDateTime('yyyy/mm/dd',DateTimePicker1.Date+15);
肯定可以,不知道为什么你那里不行呢?
 
Tdatetime就是double类型
整数部分是日期,小数部分是时间。
所以直接加15就行了

a:TDataTime;
a:=Now;
a:=a+15;
showmessage('十五日后的日期是'+Datetimetostr(a));
 
用不着这么麻烦的,在D6中DateUtils单元中就有这么一个函数:incday()
function IncDay(const AValue: TDateTime;const ANumberOfDays: Integer = 1): TDateTime;
例如得到15日之后的日期:incday(now(),15);
 
需要计算任将一日期加上15天之后的日期,应该用什么函数?
我是这样写的
var
begindate,enddate:Tdata
begin
begindate:=2002-07-20;
enddate:=begindate+15;
showmessage(datetostr(enddate));
end;

begindate := strtodatetime('2002-07-20')
否则 begindate = 1975
TDate的整数部分表示从12/30/1899.的天数。你可自己算算。
你的程序结果应该是:1905-6-12
 
procedure TForm1.Button3Click(Sender: TObject);
var
begindate,enddate:Tdate ;
begin
DateSeparator := '-';
ShortDateFormat := 'yyyy/mm/dd';
begindate:=strtodate('2002-07-20'); ///关键是这一行。其它也有贴错的。
enddate:=begindate+15;
showmessage(datetostr(enddate));
end;
 
多人接受答案了。
 
后退
顶部