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

計算目前的年月日時分秒當檔案名稱使用, 有什麼更簡潔寫法?

答題得分者是:ChungLin.Net
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-22 16:14:25 IP:61.219.xxx.xxx 訂閱
計算目前的年月日時分秒當檔案名稱使用, 有什麼更簡潔寫法?
var
DateString, TimeString : String;
YearStr, MonthStr, DayStr, HourStr, MinStr, SecStr : String;
begin
// ***** 計算目前的年月日時分秒當檔案名稱使用 ****
DateString := DateToStr(date);
TimeString := TimeToStr(Time);

YearStr := DateString[1] DateString[2] DateString[3] DateString[4] ;
if (DateString[7]='/') then // 月份為1個數字, 1-9 月
begin
MonthStr := '0' DateString[6]; //月份補成 2 位
if (DateString[9]='') then // 日期為 1 個數字
DayStr := '0' DateString[8]
else
DayStr := DateString[8] DateString[9];
end
else // 月份為2個數字, 10-12 月
begin
MonthStr := DateString[6] DateString[7];
if (DateString[10]='') then
DayStr := '0' DateString[9]
else
DayStr := DateString[9] DateString[10];
end;

AMPM:=TimeString[1] TimeString[2] TimeString[3] TimeString[4];
HourStr := TimeString[6] TimeString[7];
if (AMPM='上午') and (HourStr='12') then HourStr := '00';
if (AMPM='下午') and (HourStr<>'12') then HourStr := IntToStr(StrToInt(HourStr) 12);

MinStr := TimeString[9] TimeString[10];
SecStr := TimeString[12] TimeString[13];
CurrentDateTime := YearStr MonthStr DayStr '-' HourStr MinStr SecStr;

Memo1.Lines.SaveToFile(CurrentDateTime '.txt');
end;

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
編輯記錄
taishyang 重新編輯於 2007-09-05 18:57:38, 註解 將文章分類成[問題]‧
ChungLin.Net
中階會員


發表:2
回覆:33
積分:52
註冊:2006-07-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-22 16:54:19 IP:59.120.xxx.xxx 訂閱
小弟平時在 BCB 將日期改為字串的寫法
AnsiString CurrentDateTime = Now().FormatString("yyyymmddhhnnss");
Delphi 應該會有通用的物件可以使用
可以找說明檔有關 DateTime 之類的物件屬性

------
無限的想像,無盡的延伸。
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-22 17:17:36 IP:61.219.xxx.xxx 訂閱
FormatString 在按下 F1 Help 沒有說明, Delphi 可能不支援
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
ChungLin.Net
中階會員


發表:2
回覆:33
積分:52
註冊:2006-07-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-22 17:51:03 IP:59.120.xxx.xxx 訂閱
還有一個 FormatDateTime 也可以做到上述的結果
http://www.delphibasics.co.uk/RTL.asp?Name=FormatDateTime
------
無限的想像,無盡的延伸。
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-05 18:52:40 IP:203.204.xxx.xxx 訂閱
幾種方法
<textarea class="delphi" rows="10" cols="60" name="code"> Memo1.Clear; Memo1.Lines.Add('日期時間 : ' DateTimeToStr(Now)); Memo1.Lines.Add('日期時間 : ' DateToStr(Date) ' ' TimeToStr(Time)); DateSeparator := '-'; ShortDateFormat := 'yyyymmdd'; Memo1.Lines.Add(DateToStr(Date)); LongTimeFormat := 'hhmmss'; Memo1.Lines.Add(TimeToStr(Time)); Memo1.Lines.Add(FormatDateTime('yyyymmddhhmmss',Now));</textarea>
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
系統時間:2024-04-27 11:40:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!