博客專欄

        EEPW首頁 > 博客 > mktime

        mktime

        發布人:電子禪石 時間:2021-12-04 來源:工程師 發布文章

         標準庫 - <time.h>

        描述

        C 庫函數 time_t mktime(struct tm *timeptr) 把 timeptr 所指向的結構轉換為自 1970 年 1 月 1 日以來持續時間的秒數,發生錯誤時返回-1。

        聲明

        下面是 mktime() 函數的聲明。

        time_t mktime(struct tm *timeptr)
        參數
        • timeptr -- 這是指向表示日歷時間的 time_t 值的指針,該日歷時間被分解為以下各部分。下面是 timeptr 結構的細節:

        struct tm {
           int tm_sec;         /* 秒,范圍從 0 到 59                */
           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                    */
           int tm_isdst;       /* 夏令時                        */    };
        返回值

        該函數返回自 1970 年 1 月 1 日以來持續時間的秒數。如果發生錯誤,則返回 -1 值。

        實例

        下面的實例演示了 mktime() 函數的用法。

        實例
        #include <stdio.h>
        #include <time.h>

        int main () {
            int ret;
            struct tm info;
            char buffer[80];

            info.tm_year = 2021 - 1900;
            info.tm_mon = 7 - 1;
            info.tm_mday = 4;
            info.tm_hour = 0;
            info.tm_min = 0;
            info.tm_sec = 1;
            info.tm_isdst = -1;

            ret = mktime(&info);
            if( ret == -1 ) {
                printf("Error: unable to make time using mktime\n");
            } else {
                strftime(buffer, sizeof(buffer), "%c", &info );
                printf(buffer);
            }

            return(0);
        }

        讓我們編譯并運行上面的程序,這將產生以下結果:

        Sun Jul  4 00:00:01 2021
        實例
        /* 輸入日期判斷是周幾 */#include <stdio.h>      /* printf, scanf */#include <time.h>       /* time_t, struct tm, time, mktime */ int main (){    time_t rawtime;    struct tm * timeinfo;    int year, month ,day;    const char * weekday[] = { "周日", "周一","周二", "周三","周四", "周五", "周六"};    /* 用戶輸入日期 */    printf ("年: "); fflush(stdout); scanf ("%d",&year);    printf ("月: "); fflush(stdout); scanf ("%d",&month);    printf ("日: "); fflush(stdout); scanf ("%d",&day);    /* 獲取當前時間信息,并修改用戶輸入的輸入信息 */    time ( &rawtime );    timeinfo = localtime ( &rawtime );    timeinfo->tm_year = year - 1900;    timeinfo->tm_mon = month - 1;    timeinfo->tm_mday = day;    /* 調用 mktime: timeinfo->tm_wday  */    mktime ( timeinfo );    printf ("那一天是:%s\n", weekday[timeinfo->tm_wday]);    return 0;}

        讓我們編譯并運行上面的程序,這將產生以下結果:

        年: 2018月: 7日: 26那一天是:周四


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: C

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 聂拉木县| 泗洪县| 偏关县| 临夏市| 龙川县| 饶阳县| 大余县| 威宁| 高雄县| 吕梁市| 汤原县| 钟山县| 咸丰县| 宁陵县| 宜丰县| 方正县| 龙胜| 南溪县| 安达市| 乳源| 佛山市| 晋城| 通江县| 辽源市| 精河县| 郎溪县| 定西市| 扶余县| 筠连县| 塘沽区| 衡东县| 彩票| 无锡市| 华蓥市| 华亭县| 河津市| 肃南| 安西县| 麟游县| 白朗县| 北川|