time.h

APIs

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOVcXEtvI8dcdTAwMTG+769cdTAwMTCU62rcXdVP3/RarV67K1Gv3cBcdTAwMTBG5JCcXHUwMDE1yeGSQ0mUsbdcdTAwMWPsQ4BcdTAwMDA5XHUwMDE4yFx1MDAwZsjJySFcYpJcdTAwMWPsf5O1k1P+QqopiVx1MDAxY45IaajlSDQsXHUwMDAzXqnnVdNdX31fVXfP18/m5ubjbjOY/3JuPrgo+rWw1PLP55+79rOg1Vx1MDAwZaNcdTAwMDZcdTAwMWSC3t/tqNMq9s6sxnGz/eVcdTAwMTdf+M2mV1x045MoOvWKUf3qsqBcdTAwMTbUg0bcplx1MDAxM39Lf8/Nfd37f+JBcXBcdTAwMTH3zu21XHUwMDBlXHUwMDFlw5GlW19Fjd4jLSrJODeyf0LYXqEnxUGJjpb9WjtcdTAwMThcdTAwMWNxTfPNdzu8tOBXWy8v7crGS9x+g1x1MDAxZD14ajms1VxucbfWM6hcdTAwMWTRe1x1MDAwZo6141Z0XHUwMDFhXHUwMDFjhqW4evPyifZxV7WiTqXaXGLa7sV5vzVq+sUw7ro2Nng7v1Hp3WPQckF/Kak9qZnQXHUwMDAyrFx1MDAxMJaL/lF3veTocdRcdTAwMWGZ5lx1MDAwMCjTdi1Htajl7Ppcclx1MDAwZtx/XHUwMDAzy0784mmFzGuU+ufELb/RbvotXHUwMDFhqMF55zdvjOApQKu1UpwjmP5cdTAwMTnVIKxUYzpcdTAwMDVcdTAwMDdcdTAwMDPRXHUwMDBlemNgySwlUGL/gHtkc73Uc4SvXHUwMDA2XHUwMDFk3/Lrwbq7otGp1ZK91yhd997QgVx1MDAxM3dgNeFTg1t1miX/ylx1MDAwMbhcdTAwMDbFwEjJXHK3/eO1sHGavl0tKp6O8Jly1IhcdTAwMGLhpVx1MDAxYpPE67rWXHUwMDE3fj2sdYfGtOe/1IlFd7P//fDNp1x1MDAxZv/46dvf//TdP/773d//98O380MnLtbCinPu+VpQXHUwMDFl9vo4JLz1XHUwMDBmx1FzcLRIXHUwMDBm9sNG0LrdUVErrIRccr+2l9VcYuqF4OXNuHFcdTAwMGZkwi/agTvqXlr2XHUwMDFhPz5cdTAwMWaN2FZQjK98dlx1MDAwNGxcdTAwMDFNuvVcdTAwMDa23CpmjVx1MDAxMGbQeffhXHUwMDE219Rit3y6cFBYv/jA3r+/XGbESnm2catcdTAwMTn3JCD5IFx1MDAwMFx1MDAwMSaFW0G4NVx1MDAxNLs0t5zTWTJl1/Rwy5F7Rmop0FxuiTwx0n3culxiYy1cdTAwMDfO7JAlwTWMXHUwMDE4XHUwMDFhJYDpz1x1MDAwN/GNXHUwMDBmXHK8XGKvWz6Ox3b/msHV43gj4TJhvGl1pVJdWFxmXHUwMDFi4e6muFx1MDAxNNvCzPfP+3j92zRcdTAwMDPHnWhcdTAwMTnHb1x1MDAwMHxcdTAwMWNQUEgtXHUwMDA0SJ1cdTAwMTkno196tnHCpaeUklxcWy24NDiMXHUwMDEzkFx1MDAxZd1DI1xiaXjSe6eOXHUwMDEzhsSzLjZcdTAwMTHLXHUwMDAyN3pcdTAwMDRQblx1MDAxM1x1MDAxYyo61Vx1MDAxMIZ/ZVx1MDAwNHdcdTAwMWOPIbRcIlx1MDAxOVx1MDAxY7TuoLR6WColKWOY1e6L9COJLmlM7sQmmE239omNJJqGpNq5XHUwMDBmr5E5LMl3K3BcYtv6td3YrW1cdTAwMWactGdcdTAwMWKvylx1MDAxYY/QKpklr0twQrfHeXTMgpbUXHUwMDA3inGbn1x1MDAxYf1sVlx1MDAxM5ZcdTAwMTE7XHUwMDBi+ctcIjVVXitcdTAwMWa+qNfwfVXxpc1cdTAwMGVU917pyUhNWWlFXHUwMDEyLnmQXHUwMDFh2rEgkeQ8yNRcdTAwMDSkNvqlZ1x1MDAxYSSaa09cdTAwMTGjUIdcdTAwMDNcdTAwMDemUjDh1rNcdTAwMTaQXHUwMDBiZsBYkVx1MDAxZkwsepbGQjqCZWiZysJpXHUwMDE0xlx1MDAwNKFGw5OS2qR++nmkXHUwMDE2h/UgN067J8qnOS1tyzQobVx1MDAxY1DJMcZcdTAwMDFVoVKgJlx1MDAwMWpjXHUwMDFidjfL0dKxNJ36Slx1MDAxOTu1enlltoGqXHUwMDE08YhRICVYXHUwMDE0XFxccp7srleUpSlpmSM0YaxVKbumWF1RlFx1MDAwZlprXHUwMDE5cVx1MDAxMmaTnlxcKqDUzCak31x1MDAxM8DUalx1MDAwNjrpqrnCdHnr9fJm4fjN6u5xYXX5cWsq456dJzyFxXRrX2xcdTAwMDJHIzRpm8z4XFx777fPS1x1MDAwN7ZcdTAwMWJV1kW12LCHO3J9xvEpwGPWXHUwMDEwY1rGONpB5/aIlPhNMWJcbjA8WZ+YOjpcdTAwMDGIsLnVaDQ9jfRmXHUwMDE2gFx1MDAxMvMrXCJ4fFqAPj6PPnXx8z5cdTAwMWLyXHUwMDA0rExIvVx1MDAxNGC10oaGQ2WfrSisXHUwMDFmXHUwMDFjdoorqr5/flx1MDAxOVx1MDAxZS/o8PT121x1MDAxOa/mOLxyaUlsglE4LHtN71x1MDAxOFx1MDAwMVx1MDAxNZExlDzHuVxuLTycjE1cclxi5So5v1x1MDAxZaiWwnI5oP4rOrBcXMHk0z//+uhozWBG7jVcdTAwMWRC5jjUXG4mXHUwMDE0+YaYIF3FnVx1MDAwZmdHXHUwMDBinVx1MDAxN7Zx2I3L+1x1MDAwN740L2ZcdTAwMWK1nCvpXHUwMDE5jkSzlLkyUsJDwKU01Vx1MDAwM1xuX0IgVyQ5tUhZNsW6jlZcdTAwMWVnhiS5XHUwMDFlXYJcdTAwMTXWQ1I9rJfNgmSJTrqWxU5cdTAwMTDQbcQvq7JzcXKxu/Hu/amp+mdcdTAwMWbOdvza9pn4MFFlh7SGNSpcdJo8Kjs6gb5cdTAwMTRUXGZS17Nk6ec+qIx+6Vx1MDAxOYeKkVx1MDAxZUGB/tHAJOep+VxuLj0hyVx1MDAwM4UjOsonc4RcbiqP9KiVQnNuuchW3FGcaeRMys9Hx4OJbmJP/Tyio47vXHUwMDE047m4nlN5556Anya8XHUwMDEx5uRa4Vx1MDAxMWNcdTAwMTUpMMtBk1x1MDAxZmWfiN86bNbRXHUwMDE2LleKXHUwMDA1uFCvlo7ipv96tlx1MDAxMWs184i0hFJcdTAwMWNJfqZqsVJqT1x1MDAwMTCFXHUwMDA2nFxctCm7podXQ3CVnCRcdTAwMWWQ1HPFmyxw5YZcIowmXHUwMDAyfspaLFx0eaVcdTAwMWZvgrF+6jK4x1Wh6WfmWtQxYydHiDJcdTAwMTh5iMLsiFxctax+0bZLm+/aXHUwMDFiVVWvv+y26suzjUi3XHUwMDFhxpNcdTAwMWFJxkmujVx1MDAxNlx1MDAwMy7ocahFXHUwMDBm6C5cdTAwMTYtuZ87nl+iaI1nQVt9hchMmVwikFpm2lx1MDAxYXjKRW2PTKF+u3hdVfnPj9//9M1cdTAwMWY+/eW7n7//87//9bdHT1x1MDAxN7NZkid8UYl0a7/EQ76Ekons6N3k+3t12906uyxcdTAwMTVcdTAwMGWgXHUwMDFhvmhcdTAwMWPuLc02epUgPlx1MDAxNZxyYsUt6kTq3CvyWCC2taSQraEkzeRYlKWclVEqqFGhq/9mmzRcdTAwMDFtXHUwMDA0pyTlXHSx+8h1nllB7lPj9o7SLHlcdTAwMDUw5tatZFx1MDAwNu7Fvl84iY5ebpjjs6O3tXZcYq+Oj2ZcdTAwMWK45PbKsyRxiXS1YZBKXckrPUmo5Uq4pT05si5cdTAwMDLzjFtKLtTw2py7gMvATb9MY1x1MDAxMerDSVdcdTAwMDGXjzfZWalcdTAwMGYhZn9v+ec//S6uPzpws9iRK3Bx7Fx1MDAxYVx1MDAwNa5Q0dhYkX1S5Xj5oPt+s/Lqw6W/c7y8crp3UVirzjxwSS8rlJLIXHUwMDAzYLg4q4XxSL5Saskl6ViV36yKXHUwMDAw9ITmXHUwMDE2KFXOzLfGMNQo9JOK5cfFLd3Lr1xyQabXMueanlx1MDAwNsGTWZSreE6sXHRNrzdiXHUwMDEyhLVcdTAwMTNwcK245e92zy9Xw3CtuL1mwH+3fDDbUHYrilxmZ1x1MDAxY0k6c5Xcuuaut8KtRlwitPfqXHUwMDAwlFx1MDAxZOdHwcKJZzRGgNaZJ0lJMiBKrcVTollz6p9HrVx1MDAxZZevoVOOWnU/fjpcdTAwMDWd0ZTcp0u5XHUwMDE4m1x1MDAwMXNlXFyFU8nshHy0tLbTWCxcdTAwMWOsb5XP1enG+WrdxzczjmKUXHUwMDFlKERKcbW0JlE0vppcdTAwMDNcdTAwMDJPXHUwMDE4KyxJVqZYjnu7QHGPXHUwMDE5a1x1MDAwMSghXHUwMDE3XFyP2JPJJZJcdTAwMDdcdTAwMTBpXHUwMDBiyUhcdTAwMWRouDVhSrKCI5NqXG5cdTAwMTXmKc6XXvlcdTAwMDZsmLDcLkYr22/PNuq7UIVcdTAwMTfHYnj69MZj/VYrOp9sKbxcdTAwMDE5USB5OGJcdTAwMDSM31xyyYxQXGJcdTAwMTRVMyNm/e3K0kVJ10B3lmxcdTAwMDFZq7tcdTAwMThcdTAwMDezjVx1MDAxOGm0Zyy6xehuuS1cZlx1MDAxN43cvlx1MDAxMYNcdTAwMDYpJ2WS3DG/dbaohEeJLlx1MDAxOYxK9VZ23IZcZljrOdhcdTAwMTLbUephpE0jhoBmXFz12kxhXHUwMDEydZYg8/yu+4bNs/P2ltxfXHUwMDEwb7uG29be+pu9zSncXHUwMDE3KouXer9ZaoiD1c3t6Git7b85n1x1MDAxNsSJh0BMovxcdTAwMWZcdTAwMGVxycfPs1xuq6Qrq2RGeKW2fcJ3lkSHiPzt8VatXHUwMDEzXHUwMDA1nVx1MDAxOVe2Lo55VoN2+/1Zcl/B1Vx1MDAxMlwi5Wkw1rgl6yaxyXPqXHUwMDAwR+1xKZjbwyllcn9Xglx1MDAxMok1NcVcdTAwMWNcdTAwMWFcdTAwMTIupLC3s1bOlDCUac8kJ/5yXHUwMDAwc/X8UVxuUo6dXHUwMDAyRdabXFyw2Vx1MDAwNeTdXHUwMDExbybBQt7lceaWrynNXHUwMDA0M6k1XHRaeVZcdTAwMTnFaFCoI1R+cyjoMWSkY4VcIiXEOFx1MDAxZvVVXHUwMDBmykQ9KbRCQ9ZyhVx08d/fiUJcdTAwMTeS1s1nMyXcXHUwMDBml7s3qFx1MDAwMD5o7UI79lvxUtgohY3KsGHXXHUwMDFms1nPkL64l46KXHUwMDFkZyXzXGYlRyQ5qbdJhydWXHUwMDAxuP7ym72445GU50ZRXHUwMDA2JYhktb717kGjdL9Nd1x1MDAwYsSETVx1MDAwYozUkNKclI42jFx1MDAwNM1AXHUwMDBm9Y1cdTAwMDLw0C2QXHUwMDAxlG5cdTAwMDEoXHUwMDE5f8uomt+Ol6N6PYyp799EYSNO93GvM1x1MDAxN104qFx1MDAwNn7pyi/DXHUwMDE0l9Kr3XNG0916OEBcdTAwMGV+m1x1MDAxYmCs90f/96+ejzx7Ybzzu5/bbj+44bPkv1x1MDAxM1x1MDAwN787smckr6X4xyb44sOdsmwmg1x1MDAxZilcdTAwMDXtNvW4L1u4j5/Y4XkoeZ2xMk2qXHRcdTAwMDXPTytwXHUwMDE0nkBlKUd2XHUwMDFmfUAzYklcdTAwMTZpXHSPgChA92KJXHUwMDE49X1cdTAwMTRDpInJat3MRD+FXHUwMDEyzIMq36noN3TJdGNcdTAwMTDzOOGLMkNcdTAwMWFcYupmXHQsgcObwOiRaLSKkjFBYUhcbjONXHUwMDEwlH6nR1xyPuN9z/3c9rppXHUwMDA1n8RCwlufZVx1MDAwMvohe7JcdTAwMDefu6XoTFx1MDAwNlx1MDAxZquJY5EpbTkpL1x1MDAxON7vq1x1MDAwNXpudYhbTI1cdTAwMDbyXFy8TVx1MDAwMlCCdCNcdTAwMGZMXHUwMDFhOaL8zslSSS6iXGadQqlTYpvtzdfV3D5cdJlcXJo5O4Fn0jxiUtk1QXhBcEBcdTAwMTNaa2vZ4Es9g+BiPEpcdTAwMDRpwFxyOT8yXCKeh6muu5P2IZNAkKigWMYo1YFcdTAwMDTFXHJsXHUwMDEyXHUwMDFlU+RcdTAwMThcdTAwMWMtsTrp66mIrqeMeGM93v0s3Hb2cVx1MDAwMe/Z9Vx1MDAxM+b9ZrNcdTAwMTCT1/VHhLw/LF3P71xm3nT+LFxmzpfuhuez6351XHUwMDExK+jB4eOzj/9cdTAwMDf1IVx1MDAxOIUifQ== clock(当前时间)clock_ttime_tCLOCKS_PER_SECtime(当前时间)difference(时间差)struct tmmktimeasctime(转成字符串)ctime(转成字符串)gmtime(转成UTC的tm)localtime(转成local time的tm)strftime(format字符串)

Time manipulation - FunctionsDescription
clockClock program (function)
difftimeReturn difference between two times (function)
mktimeConvert tm structure to time_t (function)
timeGet current time (function)
Conversion - FunctionsDescription
asctimeConvert tm structure to string (function)
ctimeConvert time_t value to string (function)
gmtimeConvert time_t to tm as UTC time (function)
localtimeConvert time_t to tm as local time (function)
strftimeFormat time as string (function)
Macro constantsDescription
CLOCKS_PER_SECClock ticks per second (macro)
NULLNull pointer (macro)
typesDescription
clock_tClock type (type)
size_tUnsigned integral type (type)
time_tTime type (type)
struct tmTime structure (type)

Demos

Delay
// waiting.cpp -- using clock() in a time-delay loop
#include <iostream>
#include <ctime> // describes clock() function, clock_t type
int main()
{
    using namespace std;
    cout << "Enter the delay time, in seconds: ";
    float secs;
    cin >> secs;
    clock_t delay = secs * CLOCKS_PER_SEC;  // convert to clock ticks
    cout << "starting\a\n";
    clock_t start = clock();
    while (clock() - start < delay )        // wait until time elapses
        ;                                   // note the semicolon
    cout << "done \a\n";
    // cin.get();
    // cin.get();
    return 0; 
}

Demo:clock(),clock_t,CLOCKS_PER_SEC

发现 i++和++i 速度其实差不多(这和《C++ primer plus》说的不一样)

#include <iostream>
#include <ctime>

int main()
{
    using namespace std;
    clock_t start, end;
    double elapsed_time;

    start = clock();
    for (long i = 0; i < 100000000; ++i)
        ;
    end = clock();

    elapsed_time = static_cast<double>(end - start) / CLOCKS_PER_SEC;
    cout << "Elapsed time: " << elapsed_time << " seconds" << endl;

    start = clock();
    for (long i = 0; i < 100000000; i++)
        ;
    end = clock();

    elapsed_time = static_cast<double>(end - start) / CLOCKS_PER_SEC;
    cout << "Elapsed time: " << elapsed_time << " seconds" << endl;

    return 0;
}

(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.152691 seconds
Elapsed time: 0.136307 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.13305 seconds
Elapsed time: 0.132354 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.158112 seconds
^[[AElapsed time: 0.13959 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.145602 seconds
^[[AElapsed time: 0.139031 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.145388 seconds
^[[AElapsed time: 0.136443 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.142237 seconds
^[[AElapsed time: 0.141559 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.147315 seconds
^[[AElapsed time: 0.141024 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.138636 seconds
^[[AElapsed time: 0.134697 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.14576 seconds
^[[AElapsed time: 0.140552 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.147056 seconds
^[[AElapsed time: 0.13832 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.142151 seconds
^[[AElapsed time: 0.137866 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.148099 seconds
^[[AElapsed time: 0.141851 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.148521 seconds
^[[AElapsed time: 0.138828 seconds
(base) kimshan@MacBook-Pro output % ./"test1"
Elapsed time: 0.151287 seconds
Elapsed time: 0.134296 seconds
Demo:time(),struct tm
struct tm {
  int tm_sec;   // 秒,正常范围从 0 到 59,但允许至 61
  int tm_min;   // 分,范围从 0 到 59
  int tm_hour;  // 小时,范围从 0 到 23
  int tm_mday;  // 一月中的第几天,范围从 1 到 31
  int tm_mon;   // 月,范围从 0 到 11
  int tm_year;  // 自 1900 年起的年数
  int tm_wday;  // 一周中的第几天,范围从 0 到 6,从星期日算起
  int tm_yday;  // 一年中的第几天,范围从 0 到 365,从 1 月 1 日算起
  int tm_isdst; // 夏令时
}

#include <iostream>
#include <ctime>

int main()
{
    using namespace std;
    time_t seconds;
    time(&seconds); 
    //time_t time(time_t *t)
    struct tm *info = localtime(&seconds);
    cout << info->tm_hour << "时 " << info->tm_min << "分 " << info->tm_sec << "秒" << endl;
    return 0;
}

(base) kimshan@MacBook-Pro output % ./"test1"
12时 4分 23秒

Reference

[1] https://cplusplus.com/reference/ctime/