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

之前C語言用的Time函式Delphi有如函式可以讀取??

答題得分者是:amide
GeminiLin
一般會員


發表:12
回覆:24
積分:12
註冊:2002-12-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-27 16:57:16 IP:211.20.xxx.xxx 未訂閱
之前用C語言Time函式的數據是16進位的String 是否有Delphi的函式讀取或要如何轉換... 麻煩各位高手解惑...謝謝...
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-27 17:05:23 IP:147.8.xxx.xxx 未訂閱
Take a look at the functions: Time, Now, Date, FormatDateTime, DateTimeToStr, TimeToStr, DateToStr, etc. 
GeminiLin
一般會員


發表:12
回覆:24
積分:12
註冊:2002-12-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-30 08:13:32 IP:211.20.xxx.xxx 未訂閱
這些函數都查過了... TDateTime是Double Type所使用的方法是小數點之前是日期,之後是時間,而C的Time函數是Longword的方式做的,從格林威治1970年1月1日00:00:00以秒計算,是否只能土法煉鋼自行轉換,而無法直接使用函數轉換?< >< > 還有一個問題,讀到一組String是'3E0193FF',要如何轉換為Double Type?謝謝!
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-30 09:42:10 IP:147.8.xxx.xxx 未訂閱
引言: 這些函數都查過了... TDateTime是Double Type所使用的方法是小數點之前是日期,之後是時間,而C的Time函數是Longword的方式做的,從格林威治1970年1月1日00:00:00以秒計算,是否只能土法煉鋼自行轉換,而無法直接使用函數轉換?< >< > 還有一個問題,讀到一組String是'3E0193FF',要如何轉換為Double Type?謝謝!< face="Verdana, Arial, Helvetica"> Oh~~~ so you're using time_t record type? I think '3E0193FF' should be converted to a longint 1040290815? I am sorry there is no built-in function to convert a hex number to dec and you probably need to write it yourself. BTW, using this kind of time representation... could it be the year 2048 problem (similar to y2k but 2048 for this time_t record in some C compilers)? For example, to add some second 1000 seconds to datetime variable ADateTime: ADateTime := ADateTime EncodeTime(1000 div 3600, 1000 div 60, 1000 mod 60,0);
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-30 09:47:58 IP:147.8.xxx.xxx 未訂閱
I am sorry the problem is not year 2048, should be year 2038  href="http://pw1.netcom.com/~rogermw/Y2038.html">http://pw1.netcom.com/~rogermw/Y2038.html
amide
一般會員


發表:4
回覆:13
積分:13
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-30 10:13:46 IP:211.22.xxx.xxx 未訂閱
你的意思是不是說從格林威治1970年1月1日00:00:00到目前的時間共幾秒的問題呢?! 以前在Linux上面用C寫程式有遇過這樣的東西,時間格式是一個長整數的東西, 在Delphi其實也有類似的函式可用. uses DateUtils; DateTimeToUnix(TDateTime) : int64; UnixToDateTime(Value :int64):TDateTime; 不知道你要的是不是這個......
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-30 10:23:34 IP:210.58.xxx.xxx 未訂閱
GeminiLin兄您好: 1.目前小弟還沒找到函式, 但這可能要先用土法煉鋼的方法做    2.要注意Integer的最大值到多少, 下面的值測試無誤   Integer值最大到十進位的2147483647 十六進位的$7FFFFFFF

procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowMessage(IntToHex(1040290815,8));
   ShowMessage(IntToStr(StrToInt('$3E0193FF')));
end;
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
GeminiLin
一般會員


發表:12
回覆:24
積分:12
註冊:2002-12-26

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-30 12:14:29 IP:211.20.xxx.xxx 未訂閱
謝謝大家全力相助 測試過後成功了... procedure TForm1.Button1Click(Sender: TObject); begin   Label2.Caption:=DateTimeToStr(UnixToDateTime(StrToInt('$3E0193FF'))); end; 謝謝大家!!< >< >
系統時間:2024-05-05 14:49:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!