台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
2159
 
會員總數:229200
接案會員:6761
文章總數:2320
討論主題:175273
歡迎您免費加入會員
討論區列表 >> C/C++ >> C++ 如何取得系統時間

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C++ 如何取得系統時間
價值 : 10 QP  點閱數:12179 回應數:6

點圖分享到Plurk吧!
樓主

dinoyuang
門外漢
0 2
70 7
發送站內信

我寫的程式如下,但是只能從零開始計算時間,想請問這邊的高手,
關於C++ 取得系統時間的相關函式,謝謝!!!

#include<iostream.h>
#include <iomanip.h>
#include <dos.h>

void main()
{
cout.fill('0');
while (1)
{
for (int hrs=0; hrs<24; hrs++)
{
for (int min=0; min<60; min++)
{
for (int sec=0; sec<60; sec++)
{
cout << setw(2) << hrs << ":";
cout << setw(2) << min << ":";
cout << setw(2) << sec ;
if (hrs<12)
cout << " AM";
else
cout << " PM";
sleep(1);
system("cls");
}
}
}
}
system("pause");
}
本篇文章發表於2005-07-27 12:14
什麼是iT Power資訊報 2010年藍色小舖認證專家風雲榜完全名單
1樓
C的可以嗎?

使用 time(), 相關 function 請看下面的 see also






time, stime <TIME.H>
time gets time of day
stime sets system date and time

Declaration:
time_t time(time_t *timer);
int stime(time_t *tp);

Remarks:
time gives the current time, in seconds,
elapsed since 00:00:00 GMT, January 1, 1970.
It stores that value in the location *timer,
provided that timer is not a null pointer.

stime sets the system time and date, measured
in seconds from 00:00:00 GMT, January 1, 1970.
tp points to the value of the time.

Return Value:
time returns the elapsed time in seconds,
as described.
stime returns 0.

Portability:
DOS UNIX ANSI C C++ Only
time Yes Yes Yes
stime Yes Yes


See Also:
asctime ctime difftime
ftime gettime gmtime
localtime mktime settime
time_t tzset

Examples:
time example stime example



本篇文章回覆於2005-07-27 20:39
--未登入的會員無法查看對方簽名檔--
2樓
補充: time() 只是取得秒數, see also 裡的 function 可以轉換各種要列印的時間格式
還有時區設定等(也可以使用 localtime)



本篇文章回覆於2005-07-27 20:46
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

dinoyuang
檢舉此回應
有點難懂~不過還是謝謝你!!!


本篇文章回覆於2005-07-28 11:36
--未登入的會員無法查看對方簽名檔--
4樓
是英文難懂嗎?...@.@a

原文翻譯如下:

time, stime <TIME.H> ==>time()及stime()要include <time.h>
time gets time of day ==>time()可以取得時間
stime sets system date and time ==>stime()設定system日期和時間

Declaration: ==> 宣告方式
time_t time(time_t *timer); ==>(按: time_t 是一個 long 的 typedef, defined 在 time.h裡面)
int stime(time_t *tp);

Remarks: ==>說明:
time gives the current time, in seconds, ==> time()傳回現在時間, 單位為秒
elapsed since 00:00:00 GMT, January 1, 1970. ==> 這個秒數為自格林威治時間 1970年1月1號 0點0分0秒開始, 到現在, 總共的秒數
It stores that value in the location *timer, ==> 這個秒數傳回後被存在*timer這個位置(請看上面的time()的prototype)
provided that timer is not a null pointer. ==> timer這個 pointer不可以是null pointer(按: 若 timer不是null, 也就是有儲存空間時, 秒數會被存在 timer這個位置, 若 timer 為 null時, 則秒數直接由 return value 傳回)

stime sets the system time and date, measured ==> stime()用來社定 system日期和時間
in seconds from 00:00:00 GMT, January 1, 1970. ==> 設定時, 以秒數來設定. 自格林威治時間 1970年1月1號 0點0分0秒開始, 到現在, 總共的秒數
tp points to the value of the time. ==> *tp 就是要設的秒數

Return Value: ==> 傳回值:
time returns the elapsed time in seconds, ==> time()傳回自...的秒數
as described. ==> 如上所述
stime returns 0. ==> stime()傳回0

Portability: ==> 可攜性
DOS UNIX ANSI C C++ Only
time Yes Yes Yes ==> DOS, UNIX, ANSI C 都有
stime Yes Yes ==> DOS, UNIX 有


See Also: ==> 參閱: 以下 function 或 struct 或 type define
asctime ctime difftime
ftime gettime gmtime
localtime mktime settime
time_t tzset

Examples: ==> 範例:
time example stime example ==> time() 的 範例 stime() 的 範例



本篇文章回覆於2005-07-29 20:56
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

悶騷小伙子
檢舉此回應
說了那麼多.........
剛剛才看到了以前寫的一個範例........=.=

如下~^^"



 #include <stdio.h>
 #include <time.h>
 #include <dos.h>

int main(void)
 {
    struct tm *time_now;
    time_t secs_now;
    char str[80];

    clrscr ();
    tzset();
    time(&secs_now);
    time_now = localtime(&secs_now);
    strftime(str, 80,
             "%Y/%m/%d %a %H:%M:%S -- ",
             time_now);
    printf("%s\n",str);

    getch ();
    return 0;
 }





本篇文章回覆於2005-07-29 23:12
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

dinoyuang
檢舉此回應
真是太感謝您了~~我大概知道怎麼寫了!!謝謝~


本篇文章回覆於2005-08-01 08:24
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

回覆
如要回應,請先登入.