線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2322
推到 Plurk!
推到 Facebook!

有關跨月份計算天數

答題得分者是:老大仔
g9614721
一般會員


發表:27
回覆:51
積分:15
註冊:2008-07-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-04-02 02:38:35 IP:220.131.xxx.xxx 訂閱


mydate3:=strtoint(formatdatetime('YYYYMMdd',MYDATE1))-strtoint(formatdatetime('YYYYMMdd',MYDATE2));

2009/04/01 減去 2009/03/30 會變成20090401-20090330 =71天
= ="該怎麼修改呢...
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-04-02 04:20:29 IP:59.114.xxx.xxx 未訂閱

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
Var
Date1, Date2: TdateTime;
CntDate: Integer;
begin
Date1 := StrToDate('2009/03/30');
Date2 := StrToDate('2009/04/01');
CntDate := Trunc(Date2)-Trunc(Date1);
ShowMessage('差:' IntToStr(CntDate) '日');
end;

[/code]
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-04-02 11:50:51 IP:61.67.xxx.xxx 未訂閱
補充一下, 最好在轉換前加上這段, 以免因每台電腦預設的日期格式不同而造成 '2009/03/01' 無法識別
// 設定日期格式
LongTimeFormat:= 'HH:mm:ss';
ShortDateFormat:='yyyy/MM/dd';
DateSeparator:='/';

===================引 用 老大仔 文 章===================

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
Var
Date1, Date2: TdateTime;
CntDate: Integer;
begin
Date1 := StrToDate('2009/03/30');
Date2 := StrToDate('2009/04/01');
CntDate := Trunc(Date2)-Trunc(Date1);
ShowMessage('差:' IntToStr(CntDate) '日');
end;

[/code]
g9614721
一般會員


發表:27
回覆:51
積分:15
註冊:2008-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-04-02 17:28:34 IP:140.125.xxx.xxx 訂閱
正是我想要的! 非常感謝^^
===================引 用 老大仔 文 章===================

[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
Var
Date1, Date2: TdateTime;
CntDate: Integer;
begin
Date1 := StrToDate('2009/03/30');
Date2 := StrToDate('2009/04/01');
CntDate := Trunc(Date2)-Trunc(Date1);
ShowMessage('差:' IntToStr(CntDate) '日');
end;

[/code]
roviury
一般會員


發表:3
回覆:49
積分:15
註冊:2008-08-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-04-05 21:05:25 IP:203.186.xxx.xxx 訂閱
補充一下 老大仔 的程式碼


[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
Var
Date1, Date2: TdateTime;
CntDate: Integer;
begin
Date1 := StrToDate('2009/03/30'); //其實是一個double,小數點前為日數,小數點後為時間
Date2 := StrToDate('2009/04/01'); //其實是一個double,小數點前為日數,小數點後為時間
CntDate := Trunc(Date2)-Trunc(Date1); //其實根本沒有時間
ShowMessage('差:' IntToStr(CntDate) '日');
end;

[/code]

如果硬要是減數,就使用
4*30 1-(3*30 30)
編輯記錄
roviury 重新編輯於 2009-04-05 21:05:46, 註解 無‧
系統時間:2024-05-18 13:07:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!