from
第一種方法是利用time()函式獲得當前系統時間,返回結果是tdatetime結構型別的變數。
可以使用:timetostr將時間改為字元型。該函式不能用於返回「日期」。
單獨用於返回日期的系統函式是date。
那麼有什麼是既可返回正確的「時分秒」又可返回正確的「年月日」呢? 可以用now函式,例如:
varstime:tdatetime;
sday:tdatetime;
mytime:tdatetime;
begin
stime:
=time();
sday:
=date ;
mytime:
=now;
//caption:
=datetostr(sday)+'
'+timetostr(stime);
caption:
=datetostr(mytime)+'
'+timetostr(mytime);
end;
二是使用函式:decodedate(date,wyear,wmonth,wday);//wyear等為word型別
三、使用api函式getsystemtime
用now返回的日期格式中年只有2位,即2023年顯示為00, 這似乎不太令人滿意. 此外now和time都只能獲得精確到秒的時間,為了得到更精確的毫秒級時間,可以使用api函式getsystemtime,它對應的tsystemtime型別的定義為:
tsystemtime = record
wyear: word;
wmonth: word;
wdayofweek: word;
wday: word;
whour: word;
wminute: word;
wsecond: word;
wmilliseconds: word;
end;
顯然,在程式邏輯中還能夠方便地使用其結構成?時---各類時間值,因此使用函式getsystemtime具有很大優越性。但該書中該函式的用法是錯誤的,通過查閱windows sdk幫助可知,該函式原型為:
void getsystemtime(lpsystemtime lpst),引數指標lpst獲取系統時間,因此可如以下程式段實現:
procedure tform1.button3click(sender: tobject);
varsystime: tsystemtime;
begin
getsystemtime(systime);
caption:=inttostr(systime.wyear)+' '+inttostr(systime.wmonth);
//if systime.wyear>2000 then
// ......在程式邏輯中利用獲取的各類時間值
end;
綜合以上討論,獲取當前系統時間利用函式getsystemtime比較方便而且靈活。
C C 獲取當前系統時間
方案 優點 僅使用c標準庫 缺點 只能精確到秒級 include include int main void size t strftime char strdest,size t maxsize,const char format,const struct tm timeptr 根據格式字串生成字...
js獲取當前系統時間
var mydate new date mydate.getyear 獲取當前年份 2位 mydate.getfullyear 獲取完整的年份 4位,1970 mydate.getmonth 獲取當前月份 0 11,0代表1月 mydate.getdate 獲取當前日 1 31 mydate.get...
C C 獲取當前系統時間
方案三,優點 利用系統函式,還能修改系統時間 此檔案必須是c 檔案 include include using namespace std void main 方案四,將當前時間折算為秒級,再通過相應的時間換算即可 此檔案必須是c 檔案 include include using namespace...