<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            C語言

             C語言中時間的基本用法

            時間:2025-04-10 08:28:17 C語言 我要投稿
            • 相關推薦

             C語言中時間的基本用法

              C語言是用電比較廣泛的編程語言,但是對于C語言中時間的基本用法你了解清楚了嗎?下面小編給大家介紹C語言中時間的基本用法,歡迎閱讀!

             C語言中時間的基本用法

              time_t和struct tm

              在C語言中用time_t類型表示一個時間,通常它是一個和long一樣長的整數,也就是說,在32位環境下,它是4字節,在64位環境下,它是8字節。它保存的就是一個整數值,表示了從1970-01-01 08:00:00到其所表示時間的秒數,它是一個非負整數,所以,time_t無法表示早于1970-01-01 08:00:00的時間。

              一個很常用的函數就是time_t time(time_t *_v) ,它的參數是一個time_t類型的指針,返回一個和傳入參數相等的time_t類型值。如果time()函數的參數是0,則返回當前的時間。

              現在我們已經能用C語言表示一個時間了,但是這個時間只是從某個時間開始的秒數,如何表示更詳細的時間細節呢?這就要用到struct tm類型了,它可以表示更具體的時間信息。

              它一個結構體,我們就先看一下它的成員信息,一個struct tm類型包括以下成員:

              int tm_year表示時間的年份,它的值從1900年開始算起,也就是說當其值為1的時候,表示的是1901年。因為time_t類型表示的時間范圍不早于1970年,所以這個值通常不小于70。

              int tm_mon表示時間是幾月,它的值是0到11,0表示的是一月,而11表示的是12月。

              int tm_mday表示時間是當前月的幾號,其值的范圍自然是根據月份不同也不相同。

              int tm_wday表示時間是星期幾,它的值的范圍是0到6,0是星期天,1是星期一,6是星期六。

              int tm_yday表示時間是當前年的第幾天,要注意的是1月1號是第0天。

              int tm_hour表示時間是幾時。

              int tm_min表示時間是幾分。

              int tm_sec表示時間是幾秒。

              int tm_isdst表示是否是夏令時。

              localtime()

              如何把一個time_t類型構造成struct tm類型呢?用struct tm *localtime(const time_t *_v)函數即可,注意參數和返回值都是指針類型。

            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            #include <stdio.h>
            #include <time.h>
            int main()
            {
            time_t tt = time(0); //獲取當前時間
            struct tm *pst = localtime(&tt); //把time_t類型轉換為struct tm類型
            printf("The year is %d. ", pst->tm_year + 1900); //別忘了要加1900
            return 0;
            }

              上述程序輸出:

            1
            The year is 2016.

              mktime()

              那么如何把struct tm類型轉換為time_t類型呢?就用time_t mktime(struct tm *_v)函數,注意參數是指針類型。

              那么如何輸出時間呢?可以簡單的使用char *ctime(time_t *_v)函數和char *asctime(struct tm *_v)函數,要注意的是返回的字符串結尾包含換行符 。

            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            #include <stdio.h>
            #include <time.h>
            int main()
            {
            struct tm st;
            st.tm_year = 2016 - 1900;
            st.tm_mon = 8;
            st.tm_mday = 13;
            st.tm_hour = 16;
            st.tm_min = 30;
            st.tm_sec = 0;
            st.tm_isdst = 0;
            time_t tt = mktime(&st);
            printf("%s"asctime(&st));
            printf("%s"ctime(&tt));
            return 0;
            }

              上述程序輸出:

            1
            2
            Tue Sep 13 16:30:00 2016
            Tue Sep 13 16:30:00 2016

              我們自己用struct tm構造了一個時間,并且在執行mktime()函數后,tm_wday屬性也會自動計算出來。

              clock()

              在time.h中,還有一些其他很常用的函數,比如clock_t clock()函數,clock_t也是一個整數,是typedef long clock_t;得來的。這個函數返回程序運行到這條語句所消耗的時間。單位一般是毫秒,可以通過printf("%d ", CLOCKS_PER_SEC);這樣確定,若輸出1000,則證明是毫秒。

              我們可以方便的用它來計算程序某一段語句所消耗的時間:

            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            #include <stdio.h>
            #include <time.h>
            int main()
            {
            int i = 0;
            printf("CLOCKS_PER_SEC: %ld ", CLOCKS_PER_SEC);
            long c = clock();
            while(i < 1<<30) i++;
            printf("The while loop cost %ld. "clock() - c);
            c = clock();
            for(i = 0; i < 1<<30; i++);
            printf("The for loop cost %ld. "clock() - c);
            return 0;
            }

              上述程序輸出:

            1
            2
            3
            CLOCKS_PER_SEC: 1000
            The while loop cost 2234.
            The for loop cost 2206.


            【 C語言中時間的基本用法】相關文章:

            c語言中map的基本用法10-28

            在C語言中轉換時間的基本方法07-14

            c語言中bit的用法11-01

            C語言中assert用法09-22

            C語言中的assert用法10-10

            c語言中default的用法05-26

            c語言中多個if的用法11-12

            c語言中getch的用法06-01

            c語言中邏輯或的用法05-23

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院