ctime時間
2801 ワード
1.タイプclock_t:一定期間のクロックカウント単位数、すなわちCPUの運転単位時間を記録するlong型である.size_t:標準Cライブラリで定義されているものはunsigned int、64ビットシステムではlong unsigned intである.time_t:1970年1月1日0時0分0秒からその時点までの秒数.struct tm{int tm_sec;/*秒–取値区間[0,59]*/int tm_min;/*分-取値区間[0,59]*/int tm_hour;/*時-取値区間[0,23]*/int tm_mday;/*1ヶ月の日付-取値区間[1,31]*/int tm_mon;/*月(1月から0は1月を表す)-取値区間が[0,11]*/int tm_year;/*年、その値は実際の年から1900*/int tm_を減算した値に等しいwday;/*曜日-値区間は[0,6]で、0は日曜日、1は月曜日を表します.このように*/int tm_yday;/*年1月1日からの日数–値区間は[0365]で、0は1月1日、1は1月2日となります.isdst;/*サマータイム識別子、サマータイム実行時、tm_isdstは正です.サマータイムを実施しないisdstは0です.状況が分からない場合、tm_isdst()は負です.*/};2.時間の操作clock:このプログラムが実行されてから、クロックタイミングユニット数を返します.time:現在のtimeを返します.t.difftime:timeの計算t 2つの間の時間差.3.mktimeを変換する:tm structureをtimeに変換するtasctime:tm structureを文字列ctimeに変換する:time_を変換するt文字列gmtime:変換time_t成tm as UTC timelocaltime:変換time_tからtm as local timesrftime:フォーマット時間から文字列に変換するいくつかの関数:asctime,ctime,strftime 4.マクロCLOCKS_PER_SEC:1秒に何個のクロックタイミングユニットがあるかを表すために使用されます.
//
void test_clock_t()
{
long i = 100000000L;
clock_t start, finish;
double duration;
start = clock();
/* */
while(i--) {};
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf("Time to do 100000000 empty loops is %f seconds
", duration);
}
void test_time_t()
{
time_t t = time(NULL);
printf("The Calendar Time now is %d
", t);
}
void test_difftime()
{
time_t start,end;
start = time(NULL);
system("pause");
end = time(NULL);
printf("The pause used %5.4f seconds.
", difftime(end, start));
}
//
// mktime: tm --> time_c
void test_mktime()
{
struct tm t;
time_t t_of_day;
t.tm_year = 1997 - 1900;
t.tm_mon = 6;
t.tm_mday = 1;
t.tm_hour = 0;
t.tm_min = 0;
t.tm_sec = 1;
t.tm_wday = 4; /* Day of the week */
t.tm_yday = 0; /* Does not show in asctime */
t.tm_isdst = 0;
t_of_day = mktime(&t);
printf(ctime(&t_of_day));
}
// localtime: time_c --> tm
void test_localtime()
{
time_t rawtime;
struct tm* timeinfo;
time(&rawtime);
timeinfo = localtime(&rawtime);
printf("Current local time and date: %s", asctime(timeinfo));
}
// gmtime: time_c --> tm
void test_gmtime()
{
time_t rawtime;
struct tm* timeinfo;
time(&rawtime);
timeinfo = gmtime(&rawtime);
printf("UTC time and date: %s", asctime(timeinfo));
}
// ctime: time_t --> string
void test_ctime()
{
time_t t = time(NULL);
std::string str = ctime(&t);
std::cout << str << std::endl;
}