如何實現日期加減 |
尚未結案
|
suntao008
一般會員 發表:70 回覆:38 積分:21 註冊:2003-10-19 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗
Var Date1, Date2 : TDate; EDate, I : Integer; begin Date1 := StrToDate('2003/11/20'); Date2 := StrToDate('2003/10/20'); EDate := Trunc(Date1-Date2); ShowMessage('共差' DateToStr(EDate) '天'); end;參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
suntao008 你好:
你好像問了很多次了,在發問前先看(找)一下已沒有相關的文章喔!! function TO_Day(S, E:String):Integer;
var
TotalDay:Integer;
SDateTime, EDateTime:TDateTime;
StartTimeStamp,EndTimeStamp:TTimeStamp;
begin
SDateTime:=StrToDateTime(S);
EDateTime:=StrToDateTime(E);
StartTimeStamp:=DateTimeToTimeStamp(SDateTime);
EndTimeStamp:=DateTimeToTimeStamp(EDateTime);
TotalDay:=EndTimeStamp.Date - StartTimeStamp.Date;//總天數
if TotalDay >0 then
Result:=TotalDay
else
Result:=0;
end;
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
jackperng1
一般會員 發表:10 回覆:5 積分:3 註冊:2003-06-05 發送簡訊給我 |
|
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
有更簡單的方法,不過DELPHI表示日期的方法跟VB不同~~是用浮點數表示,整數位表示的是年月日,小數點之後的是當天的時間 整數部份的取得方式就是 (你要取得的日期)-(1899年12月30日) ,之間的差,就是整數的部份
var today : TDateTime ; // TDateTime就是double倍精確浮點數...
begin
today:=now; //2003年約是三萬七千多~ now()是內建日期時間函數 這樣推來,二個不同日期的整數位相減,就得出差了幾天... 那嘛如果把日期直接相加,就可以得到被加之後的日期
如
var adate: TDateTime;
begin
adate:=encodedate(2003,11,23); // 跟StrToDate用法相近
showmessage(formatdatetime('yyyy"年"mm"月"dd"日"'.adate 1) );
// 會顯示出 2003年11月24日
showmessage(formatdatetime('yyyy"年"mm"月"dd"日"'.adate-11) );
// 會顯示出 2003年11月22日 再來就是解釋小數點之後的部份----時間
很簡單,如果把一天看成24個小時,那麼0.5天就代表中午12點整,0.75就是24*0.75=18,下午六點整~~
跟日期一樣,二個時間相減,就可以得出時間差(如果差的整數位大於0的話,就代表差了一天多)
var adate , bdate : TDateTime;
begin
adate:=encodetime(13,55,30,0) ; 把adate表示成下午一點55分30秒
bdate:=encodetime(15,32,14,0) ; 下午三點32分14秒
abs(adate-bdate)*86400 ; // 二個時間之間共差了幾秒(取絕對值)
// 一天共有24小時,一小時60分,一分60秒,則一天有24*60*60=86400秒
abs(adate-bdate)*1440 ; // 二個時間之間共差了幾分鐘
abs(adate-bdate)*24 ; // 二個時間之間共差了幾小時 對borland的delphi來說,從沒發生過千禧年的問題的原因就是delphi的日期時間的表示方法真的很廣,如果真要用真實的時間來算,可以記錄到11767033年咧~一千多萬年~人類歷史也沒那麼久~~~(題外話) 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |