关于计算时间的问题 哥哥呀帮帮忙 ( 积分: 100 )

  • 主题发起人 主题发起人 pipiws
  • 开始时间 开始时间
P

pipiws

Unregistered / Unconfirmed
GUEST, unregistred user!
帮忙看看计算时间有错吗
我刚学了几天delphi不大会

var
cost:string;
cost1:double;

begin


if kuhao.Text='' then
begin
kuhao.Focused;
messagedlg('没有输入值,请输入库号!!',mtWarning,[mbOK],0);

end;


//小行车出库
if kuhao.Text= 'S1' then
begin
ADOquery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 车库 where 编号=:y');
ADOQuery1.Parameters.ParamByName('y').Value:=kuhao.Text;
ADOquery1.Open;
if ADOquery1.FieldByName('是否有车').AsString='yes' then
begin
smallx.IS1.Picture:=nil;
smallx.S1.Enabled:=true;
cost:=ADOquery1.FieldByName('入库时间').AsString;
cost1:=(now-strtodatetime(cost))*200;
feiyong.Text:=floattostr(cost);//这里不正确了,运行有错误
with ADOQuery1 do
begin
close;
SQL.clear;
SQL.add('update 车库 set 是否有车="no" where 编号=:y');

Parameters.ParamByName('y').Value:=kuhao.Text;
ExecSQL;
showmessage('出库成功!');
end;

end
else
begin
messagedlg('此库没有存车!输入有误!',mtWarning,[mbOK],0);
end;
end;
 
哥哥帮帮忙吧
是一个计费的问题;近库时间和现在时间的差乘费用,怎么弄呀
 
cost不就已经是String的吗?怎么还要FloattoString啊?
 
feiyong.Text:=floattostr(cost);
当然有错
因为你定义的cost就是string类型的
 
直接feiyong.text:=cost;也不行;麻烦你再看看;谢谢
 

我那是cost1
 
feiyong.Text为:String

var
cost:string;

[red]feiyong.Text:=floattostr(cost); //好像这有错还是哪呀,这地方我不会弄-->>????[/red]

??
 
再来看看吧 哥哥们呀
 
[red]什么意思呀
 
帮忙看看计算时间有错吗
我刚学了几天delphi不大会
 
追踪下‘ cost1:=(now-strtodatetime(cost))*200;
feiyong.Text:=floattostr(cost1); ’
 
谢谢大家了
好了
小弟这里有礼了
还请下次帮忙呀
 
/////////////////////////////
cost1:=(now-strtodatetime(cost))*200;
feiyong.Text:=floattostr(cost); //好像这有错还是哪呀,这地方我不会弄
/////////////////////////////

你是要按天数来计算吗?
这样计算天数是不对的.还需要取整
有两个函数
round,四舍五入。
trunc,直接截断。
看你要用哪个
 
时间计算可以直接减 。
var t1,t2:tdatetime;
t1-t2的整数部份就是天,
(t1-t2)*24的整数就是小时。
(t1-t2)*24*60的整数就是分钟。
(t1-t2)*24*60*60的整数就是秒钟。
数据库取出来的内容一样的可以这样计算,看你自己需要什么样的时间差,你就采用响应的计算就好。
 
后退
顶部