博客專欄

        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

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 武平县| 北辰区| 广宁县| 铜山县| 页游| 咸丰县| 阿尔山市| 青阳县| 通化市| 新密市| 武山县| 平乐县| 大理市| 兰坪| 和林格尔县| 伊宁市| 察哈| 敦煌市| 泸州市| 施秉县| 永寿县| 白河县| 册亨县| 舞钢市| 公主岭市| 嘉义市| 彭山县| 阳山县| 廊坊市| 张家川| 全州县| 新巴尔虎左旗| 沛县| 石门县| 铁岭市| 临颍县| 阿克| 鄂托克旗| 湘阴县| 梧州市| 理塘县|