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

有什麼程式能寫出可執行加減時間(非日期)的程式嗎?

尚未結案
laichunmin
一般會員


發表:1
回覆:1
積分:0
註冊:2005-09-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-26 22:01:59 IP:218.169.xxx.xxx 未訂閱
各位大大好 小弟自從有計算時間(加減.即1分20秒 40秒等於2分的意思.而非日期上的計算)需求開始.每天不斷的在網路上尋找.直至今天都未能找到ㄧ個可用的程式.我不敢奢望大大們幫我製作這個程式.但是能否拜託告訴小弟.怎樣才能製作一個做時間加減的程式.拜託了.感謝! 發表人 - laichunmin 於 2005/09/26 23:27:09
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-26 22:49:10 IP:61.217.xxx.xxx 未訂閱
laichunmin 您好:    請配合您的實際問題將您的標題修改一下,以便他人瀏覽標題時不會誤解。    關於您的問題,我不清楚您的實際為何?如果只是單純的做日期加減的話,可以先參考一下下列作法:
TDate d1 = TDateTime("2005/09/20");  // 設定 d1 為 2005 年 9 月 20 日
TDate d2 = d1.CurrentDate();  // 設定 d2 為今天日期
int d3 = d2-d1;  // 將 d2 減掉 d1 就是兩個日期的相差天數了
7 天天敲鍵盤 v 時時按滑鼠 8
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-29 13:09:52 IP:210.65.xxx.xxx 未訂閱
Hi laichunmin,    大概邏輯是這樣,你參考看看:    h1,m1,s1 --> input1 h2,m2,s2 --> input2 h3,m3,s3 --> output i1,i2,i3 --> 變數
1.i1 = (h1 * 60 * 60)   (m1 * 60)   s1 --> 將 input1 轉換為總秒數
2.i2 = (h2 * 60 * 60)   (m2 * 60)   s2 --> 將 input2 轉換為總秒數
3.i3 = i1   (or - ) i2 --> 計算 output 總秒數
4.if i3 < 0 then
    i3 = abs(i3) --> 取絕對值
    結果為負
  else
    結果為正
end if
5.h3 = int(i3 / (60 * 60)) --> 計算 output 小時數
6.m3 = int((i3 - (h3 * 60 * 60)) / 60) --> 計算 output 分數
7.s3 = i3 mod 60 --> 計算 output 秒數
發表人 -
------
Fishman
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-09-29 15:27:15 IP:59.115.xxx.xxx 未訂閱
laichunmin 您好:    除非是有絕對的必要對錯字做修正或是因為版面顯示問題而重貼程式碼,否則的話請您以後在他人做回覆後,不要直接修改原文的語意,如果有發現原文有詞不達意或是讓人誤解之處,可以接著回覆加以說明。 否則就會顯得回覆者 (在本篇裡指的就是本人) 好像看不懂問題而答非所問似的。 <> <>> 天天敲鍵盤 <>> 時時按滑鼠 <>>
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-09-30 09:01:14 IP:59.104.xxx.xxx 未訂閱
查一下 time() 這個指令。 你可以找出所謂的”秒數” 兩個時間。也只是兩個”秒數”的值。 相減就可以知道差幾秒了。
laichunmin
一般會員


發表:1
回覆:1
積分:0
註冊:2005-09-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-10-06 23:24:07 IP:218.169.xxx.xxx 未訂閱
感謝各位大大的幫助.小弟大有收穫.也對版主深感抱歉.小弟不懂這裡的規矩.造成版主或其他網友的困擾.還請見諒海涵
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-02-13 10:22:47 IP:220.134.xxx.xxx 訂閱
您好
我目前也遇到這個問題,給您參考看看!
var t1 : ttime;
s1 : string;
t1 := Now;
s1 := FormatDateTime('hhmmss', t1-StrToTime('00:30:00'));
t1後面的strtotime()裡面請直接放您要運算的值,範例是要扣掉30分鐘,如果要做秒數就請放到秒數的地方。
希望有幫上您的忙!
------
Pillar Wang
yubad2000
中階會員


發表:0
回覆:44
積分:78
註冊:2007-09-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-02-13 15:24:03 IP:66.171.xxx.xxx 未訂閱
This is an easy calculation if you know the how Datetime value get stored in the system, actually it is a Double.
The basic idea is that 1 = 1 day. So, 0.5 = 12 hours.
=> 1/24 = 1 hour
1/24*60 = 1 minute
1/24*60*60 = 1 second
Therefore, base on this, you can find the difference between two times by using time1-time2 = td (a double value)
Then,
td/ 1/ 24*60*60 = how many seconds are between time1 and time2.
As a result, you can write your own DateTimeDiff() function.

===================引 用 laichunmin 文 章===================
各位大大好
小弟自從有計算時間(加減.即1分20秒 40秒等於2分的意思.而非日期上的計算)需求開始.每天不斷的在網路上尋找.直至今天都未能找到ㄧ個可用的程式.我不敢奢望大大們幫我製作這個程式.但是能否拜託告訴小弟.怎樣才能製作一個做時間加減的程式.拜託了.感謝!






發表人 - laichunmin 於 2005/09/26 23:27:09
------
===波士頓夜未眠===
What a wonderful world!!
Jazz up the world with jazz!!
==================

When I am not programming...
you can find me here:
http://www.holy-war.de/EN/World3/bin/?advertiser=63190
系統時間:2024-04-25 2:27:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!