全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1338
推到 Plurk!
推到 Facebook!

如何寫出一個時間相減的程式,誰能幫幫我...

尚未結案
Killy
一般會員


發表:1
回覆:1
積分:0
註冊:2003-10-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-15 00:05:45 IP:61.223.xxx.xxx 未訂閱
最近我在學習Delphi6程式..... 我想寫出一個時間相減的程式...... 程式的題目是這樣..... "下班時間減下班時間".. 只要輸入"下班時間"和"上班時間"... 然後再按一個按鈕,他就會自動幫你相減,然後顯示出來..... 以下是我自己寫的程式,可是有錯誤,無法執行.... 我不知道到底錯在哪...... 誰能幫我改一下,或是幫我重新寫一個..... 我會非常感謝你的..... unit U01; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit3: TEdit; Edit4: TEdit; procedure Edit2Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Edit2Change(Sender: TObject); var a,b,c,d:single; begin a:=strtofloat(edit1.text); b:=strtofloat(edit2.text); c:=strtofloat(edit3.text); d:=strtofloat(edit4.text); label3:=((a*60) c)-((b*60) d)/60; ediout.text:=floattostr(label3); end; end.
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-15 07:30:43 IP:202.39.xxx.xxx 未訂閱
您的 Edit1 ~ Edit4 分別表示什麼?    --- 歡迎光臨 KTop 研究院
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-15 08:58:16 IP:61.155.xxx.xxx 未訂閱
//自定义函数实现时间差 type TDateDiff=record days,hours,minutes,seconds,mseconds:integer; end; function GetDiff(const Date1,Date2:TDateTime):TDateDiff; var Diff:TDateTime; temp:TDateDiff; begin Diff:=abs(Date1-Date2); temp.days:=trunc(Diff); Diff:=(Diff-temp.days)*24; temp.hours:=trunc(Diff); Diff:=(Diff-temp.hours)*60; temp.minutes:=trunc(Diff); Diff:=(Diff-temp.minutes)*60; temp.seconds:=trunc(Diff); Diff:=(Diff-temp.seconds)*1000; temp.mseconds:=trunc(Diff); Result:=temp; end; procedure TForm1.Button1Click(Sender: TObject); var astart:string; mytime:TDateDiff; begin astart:='2003-10-15 8:15:00 00'; mytime:=GetDiff(strtodatetime(astart),now()) ; showmessage(inttostr(mytime.days)); showmessage(inttostr(mytime.hours)); showmessage(inttostr(mytime.minutes)); showmessage(inttostr(mytime.seconds)); showmessage(inttostr(mytime.mseconds)); end; try~~~
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-15 16:53:19 IP:211.23.xxx.xxx 未訂閱
將時間字串轉為 TDATETIME 再相減就好啦!!  
 
procedure TForm1.Button1Click(Sender: TObject);
var
  s1, s2 : string ;
  dt1, dt2 : TDateTime ;
  dDiff : double ;
  s, sRet : string ;
begin
  s1:='2003/10/15 17:55:00' ;
  s2:='2003/10/15 18:06:00' ;      dt1:=StrToDateTime(s1) ;
  dt2:=StrToDateTime(s2) ;      dDiff:=dt2-dt1 ;
  sRet:='' ;
  if trunc(dDiff)>0 then
    begin
    sRet:=inttostr(trunc(dDiff)) '天';
    end ;
  s:=FormatDateTime('hh:nn:ss',dDiff) ;
  sRet:=sRet copy(s,1,2) '時' copy(s,4,2) '分' copy(s,7,2) '秒' ;
  ShowMessage(sRet) ;
end;
...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
Killy
一般會員


發表:1
回覆:1
積分:0
註冊:2003-10-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-19 21:39:59 IP:219.68.xxx.xxx 未訂閱
謝謝hagar大大,aquarius大大和sos_admin大大......    謝謝你們的回覆與解答......    雖然我還沒做出來,但我已經有個方向了.....    只差一點點就成功了.....    真是太感謝你們三位熱心的回覆......    小弟真的很謝謝你們.....    小弟感激不盡.....    
系統時間:2024-06-17 23:34:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!