也是時間相減的問題 |
尚未結案
|
ychx
一般會員 ![]() ![]() 發表:40 回覆:14 積分:10 註冊:2003-08-03 發送簡訊給我 |
|
kenspc
一般會員 ![]() ![]() 發表:1 回覆:20 積分:4 註冊:2004-12-09 發送簡訊給我 |
|
deity
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
您好:
将您两次所问问题,结合一起,即可,试试
procedure TForm1.Button3Click(Sender: TObject); var year,month,day,h,m,s,ms,days:word; str1,str2:string; begin str1:='2004-5-8 14:23:55'; str2:='2004-5-8 23:13:24'; days:=DaysBetween(strtodatetime(str2),strtodatetime(str1)); year:=days div 365; month:=(days mod 365) div 30; day:=(days mod 30); DecodeTime(strtodatetime(str2)-strtodatetime(str1),h,m,s,ms); showmessage(format('%d年; ',[year]) format('%d月; ',[month]) format('%d日; ',[day]) format('%d小时; ',[h]) format('%d分钟; ',[m]) format('%d秒; ',[s]) format('%d微秒',[ms])); end;~~~行径窄处,留一步与人行~~~ |
ychx
一般會員 ![]() ![]() 發表:40 回覆:14 積分:10 註冊:2003-08-03 發送簡訊給我 |
|
deity
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
chris_shieh
高階會員 ![]() ![]() ![]() ![]() 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
ShowMessage(FormatDateTime('YYYY-MM-DD HH:NN:SS', date1-date2)); 是錯的作法 因為FormatDataTime 或是說 TDatetime (float值) 是以 1899/12/30 12:00 am 為 0 , 1 就等於24小時 (1天) 所以TDatetime=0.1就相當於 1/24 小時 = (1/24)*60分鐘 所以如果帶入 date1=2004/01/01 10:00:00 , date2=2004/01/01 09:00:00 (相差一小時) 結果會變成 1899-12-30 01:00:00 等於是得出 算出距離1899/12/30 12:00 am 1個小時的TDatetime值 //此函式跟時間誰先誰後無關 function TForm1.TimeStrInBetween(time1, time2: TDatetime):String; var days, year,mon,day, h, m, s, ms:Word; begin DivMod(DaysBetween(time1, time2), 365 , year, days); //精簡一下 DivMod(days, 30, mon, day); //精簡一下 DecodeTime(time1-time2,h,m,s,ms); Result:=Format('%d 年, %d 月, %d 日, %d 小時, %d 分, %d 秒, %d 微秒', [year, mon, day, h, m, s, ms]); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |