{"id":3280,"date":"2025-03-29T15:09:37","date_gmt":"2025-03-29T07:09:37","guid":{"rendered":"https:\/\/www.laixuexila.com\/?p=3280"},"modified":"2025-03-29T15:09:37","modified_gmt":"2025-03-29T07:09:37","slug":"c-%e6%97%a5%e6%9c%9f-%e6%97%b6%e9%97%b4%e8%af%a6%e8%a7%a3","status":"publish","type":"post","link":"https:\/\/www.laixuexila.com\/index.php\/2025\/03\/29\/c-%e6%97%a5%e6%9c%9f-%e6%97%b6%e9%97%b4%e8%af%a6%e8%a7%a3\/","title":{"rendered":"C++ \u65e5\u671f &#038; \u65f6\u95f4\u8be6\u89e3"},"content":{"rendered":"\n<p>\u5728 C++ \u4e2d\uff0c\u65e5\u671f\u548c\u65f6\u95f4\u5904\u7406\u4e3b\u8981\u4f9d\u8d56\u4e8e <strong>C \u6807\u51c6\u5e93 <code>&lt;ctime><\/code><\/strong> \u548c <strong>C++11 \u5f15\u5165\u7684 <code>&lt;chrono><\/code><\/strong>\u3002\u8fd9\u4e24\u8005\u63d0\u4f9b\u4e86\u4e0d\u540c\u7684\u65f6\u95f4\u7ba1\u7406\u65b9\u5f0f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>&lt;ctime><\/code><\/strong>\uff1a\u57fa\u4e8e C \u8bed\u8a00\uff0c\u4f7f\u7528 <code>time_t<\/code>\u3001<code>tm<\/code> \u7ed3\u6784\u4f53\uff0c\u63d0\u4f9b\u57fa\u672c\u7684\u65e5\u671f\u548c\u65f6\u95f4\u64cd\u4f5c\u3002<\/li>\n\n\n\n<li><strong><code>&lt;chrono><\/code><\/strong>\uff08C++11+\uff09\uff1a\u63d0\u4f9b\u66f4\u5f3a\u5927\u7684\u65f6\u95f4\u5904\u7406\u529f\u80fd\uff0c\u5305\u62ec\u9ad8\u7cbe\u5ea6\u8ba1\u65f6\u548c\u65f6\u95f4\u5355\u4f4d\u8f6c\u6362\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. C \u8bed\u8a00\u98ce\u683c\u7684\u65e5\u671f &amp; \u65f6\u95f4\uff08<code>&lt;ctime&gt;<\/code> \u5934\u6587\u4ef6\uff09<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1.1 <code>time_t<\/code> \u83b7\u53d6\u5f53\u524d\u65f6\u95f4<\/strong><\/h3>\n\n\n\n<p><code>time_t<\/code> \u662f\u4e00\u4e2a\u6574\u6570\u7c7b\u578b\uff0c\u8868\u793a\u81ea <strong>1970 \u5e74 1 \u6708 1 \u65e5 00:00:00 UTC<\/strong>\uff08Unix \u65f6\u95f4\uff09\u4ee5\u6765\u7684\u79d2\u6570\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;ctime&gt;\n\nint main() {\n    time_t now = time(0);  \/\/ \u83b7\u53d6\u5f53\u524d\u65f6\u95f4\n    std::cout &lt;&lt; \"\u5f53\u524d\u65f6\u95f4\u6233: \" &lt;&lt; now &lt;&lt; std::endl;\n    return 0;\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1.2 <code>tm<\/code> \u7ed3\u6784\u4f53\u89e3\u6790\u65f6\u95f4<\/strong><\/h3>\n\n\n\n<p><code>tm<\/code> \u7ed3\u6784\u4f53\u7528\u4e8e\u5b58\u50a8\u89e3\u6790\u540e\u7684\u65f6\u95f4\u6570\u636e\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6210\u5458\u53d8\u91cf<\/th><th>\u8bf4\u660e<\/th><th>\u53d6\u503c\u8303\u56f4<\/th><\/tr><\/thead><tbody><tr><td><code>tm_sec<\/code><\/td><td>\u79d2\uff080 &#8211; 59\uff09<\/td><td>0-59<\/td><\/tr><tr><td><code>tm_min<\/code><\/td><td>\u5206\uff080 &#8211; 59\uff09<\/td><td>0-59<\/td><\/tr><tr><td><code>tm_hour<\/code><\/td><td>\u5c0f\u65f6\uff080 &#8211; 23\uff09<\/td><td>0-23<\/td><\/tr><tr><td><code>tm_mday<\/code><\/td><td>\u4e00\u4e2a\u6708\u4e2d\u7684\u65e5\u671f\uff081 &#8211; 31\uff09<\/td><td>1-31<\/td><\/tr><tr><td><code>tm_mon<\/code><\/td><td>\u6708\u4efd\uff080 &#8211; 11\uff0c0 \u8868\u793a 1 \u6708\uff09<\/td><td>0-11<\/td><\/tr><tr><td><code>tm_year<\/code><\/td><td>\u81ea 1900 \u5e74\u4ee5\u6765\u7684\u5e74\u6570<\/td><td>1900+<\/td><\/tr><tr><td><code>tm_wday<\/code><\/td><td>\u4e00\u5468\u4e2d\u7684\u5929\u6570\uff080 &#8211; 6\uff0c0 \u662f\u5468\u65e5\uff09<\/td><td>0-6<\/td><\/tr><tr><td><code>tm_yday<\/code><\/td><td>\u4e00\u5e74\u4e2d\u7684\u5929\u6570\uff080 &#8211; 365\uff09<\/td><td>0-365<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\u672c\u5730\u65f6\u95f4 <code>localtime()<\/code><\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;ctime&gt;\n\nint main() {\n    time_t now = time(0);\n    tm* localTime = localtime(&amp;now);\n\n    std::cout &lt;&lt; \"\u672c\u5730\u65f6\u95f4: \"\n              &lt;&lt; localTime-&gt;tm_year + 1900 &lt;&lt; \"-\"\n              &lt;&lt; localTime-&gt;tm_mon + 1 &lt;&lt; \"-\"\n              &lt;&lt; localTime-&gt;tm_mday &lt;&lt; \" \"\n              &lt;&lt; localTime-&gt;tm_hour &lt;&lt; \":\"\n              &lt;&lt; localTime-&gt;tm_min &lt;&lt; \":\"\n              &lt;&lt; localTime-&gt;tm_sec &lt;&lt; std::endl;\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>UTC \u65f6\u95f4 <code>gmtime()<\/code><\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>tm* utcTime = gmtime(&amp;now);<\/code><\/pre>\n\n\n\n<p><strong>\u533a\u522b\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>localtime()<\/code> \u8fd4\u56de\u672c\u5730\u65f6\u533a\u7684\u65f6\u95f4\u3002<\/li>\n\n\n\n<li><code>gmtime()<\/code> \u8fd4\u56de UTC \u65f6\u95f4\uff08\u96f6\u65f6\u533a\u65f6\u95f4\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1.3 \u683c\u5f0f\u5316\u65f6\u95f4 <code>asctime()<\/code> \u548c <code>strftime()<\/code><\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\uff081\uff09<code>asctime()<\/code><\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;ctime&gt;\n\nint main() {\n    time_t now = time(0);\n    tm* localTime = localtime(&amp;now);\n\n    std::cout &lt;&lt; \"\u683c\u5f0f\u5316\u65f6\u95f4: \" &lt;&lt; asctime(localTime);  \/\/ e.g., Sat Mar 30 14:23:45 2025\n    return 0;\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\uff082\uff09<code>strftime()<\/code> \u81ea\u5b9a\u4e49\u683c\u5f0f<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;ctime&gt;\n\nint main() {\n    time_t now = time(0);\n    tm* localTime = localtime(&amp;now);\n\n    char buffer&#91;80];\n    strftime(buffer, 80, \"%Y-%m-%d %H:%M:%S\", localTime);\n    std::cout &lt;&lt; \"\u81ea\u5b9a\u4e49\u683c\u5f0f\u65f6\u95f4: \" &lt;&lt; buffer &lt;&lt; std::endl;\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p><strong>\u5e38\u89c1\u683c\u5f0f\u7b26\uff1a<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u683c\u5f0f<\/th><th>\u8bf4\u660e<\/th><\/tr><\/thead><tbody><tr><td><code>%Y<\/code><\/td><td>4 \u4f4d\u5e74\u4efd\uff0c\u5982 2025<\/td><\/tr><tr><td><code>%m<\/code><\/td><td>\u6708\u4efd\uff0801-12\uff09<\/td><\/tr><tr><td><code>%d<\/code><\/td><td>\u65e5\uff0801-31\uff09<\/td><\/tr><tr><td><code>%H<\/code><\/td><td>\u5c0f\u65f6\uff0800-23\uff09<\/td><\/tr><tr><td><code>%M<\/code><\/td><td>\u5206\u949f\uff0800-59\uff09<\/td><\/tr><tr><td><code>%S<\/code><\/td><td>\u79d2\uff0800-59\uff09<\/td><\/tr><tr><td><code>%A<\/code><\/td><td>\u5b8c\u6574\u661f\u671f\u540d\uff0c\u5982 &#8220;Sunday&#8221;<\/td><\/tr><tr><td><code>%B<\/code><\/td><td>\u5b8c\u6574\u6708\u4efd\u540d\uff0c\u5982 &#8220;March&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. C++11 <code>&lt;chrono&gt;<\/code> \u9ad8\u7cbe\u5ea6\u65f6\u95f4<\/strong><\/h2>\n\n\n\n<p>C++11 \u5f15\u5165\u4e86 <code>&lt;chrono&gt;<\/code>\uff0c\u63d0\u4f9b\u66f4\u7cbe\u786e\u7684\u65f6\u95f4\u7ba1\u7406\uff0c\u5305\u62ec\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>std::chrono::system_clock<\/code>\uff08\u7cfb\u7edf\u65f6\u949f\uff09<\/li>\n\n\n\n<li><code>std::chrono::steady_clock<\/code>\uff08\u5355\u8c03\u65f6\u949f\uff09<\/li>\n\n\n\n<li><code>std::chrono::high_resolution_clock<\/code>\uff08\u9ad8\u7cbe\u5ea6\u65f6\u949f\uff09<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2.1 \u83b7\u53d6\u5f53\u524d\u65f6\u95f4\u70b9<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;chrono&gt;\n\nint main() {\n    auto now = std::chrono::system_clock::now();\n    std::time_t now_c = std::chrono::system_clock::to_time_t(now);\n\n    std::cout &lt;&lt; \"\u5f53\u524d\u65f6\u95f4: \" &lt;&lt; std::ctime(&amp;now_c);\n    return 0;\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2.2 \u8ba1\u7b97\u65f6\u95f4\u95f4\u9694<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\uff081\uff09\u6d4b\u91cf\u4ee3\u7801\u6267\u884c\u65f6\u95f4<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;chrono&gt;\n#include &lt;thread&gt;\n\nint main() {\n    auto start = std::chrono::high_resolution_clock::now();\n\n    std::this_thread::sleep_for(std::chrono::seconds(2)); \/\/ \u6a21\u62df\u8017\u65f6\u64cd\u4f5c\n\n    auto end = std::chrono::high_resolution_clock::now();\n    std::chrono::duration&lt;double&gt; elapsed = end - start;\n\n    std::cout &lt;&lt; \"\u4ee3\u7801\u6267\u884c\u65f6\u95f4: \" &lt;&lt; elapsed.count() &lt;&lt; \" \u79d2\" &lt;&lt; std::endl;\n    return 0;\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\uff082\uff09\u5355\u4f4d\u8f6c\u6362<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;chrono&gt;\n\nint main() {\n    using namespace std::chrono;\n\n    milliseconds ms(5000);  \/\/ 5000 \u6beb\u79d2\n    seconds sec = duration_cast&lt;seconds&gt;(ms);  \/\/ \u8f6c\u6362\u4e3a\u79d2\n\n    std::cout &lt;&lt; \"5000 \u6beb\u79d2 = \" &lt;&lt; sec.count() &lt;&lt; \" \u79d2\" &lt;&lt; std::endl;\n    return 0;\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. \u65e5\u671f &amp; \u65f6\u95f4\u7684\u5e38\u89c1\u5e94\u7528<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.1 \u751f\u6210\u65f6\u95f4\u6233<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;chrono&gt;\n\nint main() {\n    auto now = std::chrono::system_clock::now();\n    auto duration = now.time_since_epoch();\n    auto millis = std::chrono::duration_cast&lt;std::chrono::milliseconds&gt;(duration);\n\n    std::cout &lt;&lt; \"\u5f53\u524d\u65f6\u95f4\u6233\uff08\u6beb\u79d2\uff09: \" &lt;&lt; millis.count() &lt;&lt; std::endl;\n    return 0;\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.2 \u83b7\u53d6\u5f53\u524d\u65e5\u671f<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;ctime&gt;\n\nint main() {\n    time_t now = time(0);\n    tm* localTime = localtime(&amp;now);\n\n    char buffer&#91;20];\n    strftime(buffer, 20, \"%Y-%m-%d\", localTime);\n    std::cout &lt;&lt; \"\u4eca\u5929\u65e5\u671f: \" &lt;&lt; buffer &lt;&lt; std::endl;\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. \u603b\u7ed3<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u65b9\u5f0f<\/th><th>\u9002\u7528\u573a\u666f<\/th><\/tr><\/thead><tbody><tr><td><code>&lt;ctime&gt;<\/code>\uff08C \u65b9\u5f0f\uff09<\/td><td>\u9002\u5408\u7b80\u5355\u65f6\u95f4\u64cd\u4f5c\uff0c\u5982\u65f6\u95f4\u6233\u3001\u672c\u5730\u65f6\u95f4<\/td><\/tr><tr><td><code>&lt;chrono&gt;<\/code>\uff08C++11+\uff09<\/td><td>\u9002\u5408\u9ad8\u7cbe\u5ea6\u8ba1\u65f6\u3001\u65f6\u95f4\u95f4\u9694\u8ba1\u7b97\u3001\u5355\u4f4d\u8f6c\u6362<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>\u63a8\u8350\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5982\u679c\u53ea\u662f\u83b7\u53d6\u5f53\u524d\u65f6\u95f4\u3001\u65f6\u95f4\u6233\uff0c\u53ef\u4ee5\u7528 <strong><code>&lt;ctime><\/code><\/strong>\u3002<\/li>\n\n\n\n<li>\u5982\u679c\u9700\u8981\u9ad8\u7cbe\u5ea6\u5b9a\u65f6\u3001\u65f6\u95f4\u8ba1\u7b97\uff0c\u5efa\u8bae\u7528 <strong><code>&lt;chrono><\/code><\/strong>\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u66f4\u591a\u8be6\u7ec6\u5185\u5bb9\u8bf7\u5173\u6ce8\u5176\u4ed6\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728 C++ \u4e2d\uff0c\u65e5\u671f\u548c\u65f6\u95f4\u5904\u7406\u4e3b\u8981\u4f9d\u8d56\u4e8e C \u6807\u51c6\u5e93 &lt;ctime> \u548c C++11 \u5f15\u5165\u7684 &lt;c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3281,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[81],"tags":[],"class_list":["post-3280","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-"],"_links":{"self":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts\/3280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/comments?post=3280"}],"version-history":[{"count":1,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts\/3280\/revisions"}],"predecessor-version":[{"id":3282,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/posts\/3280\/revisions\/3282"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/media\/3281"}],"wp:attachment":[{"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/media?parent=3280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/categories?post=3280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.laixuexila.com\/index.php\/wp-json\/wp\/v2\/tags?post=3280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}