English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C 库函数 mktime() 的使用方法和示例

C标准库 - <time.h>

C 库函数 time_t mktime(struct tm *timeptr)timeptr 所指向的结构被转换为一个基于本地时区的 time_t 值。

声明

下面是 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;        /* Giorno della settimana, range da 0 a 6 */
   int tm_yday;        /* Giorno dell'anno, range da 0 a 365 */
   int tm_isdst;       /* Orario estivo */    
};

Valore di ritorno

La funzione restituisce un valore time_t, che corrisponde al tempo calendario passato come parametro. In caso di errore, viene restituito il valore -1.

Esempio online

Il seguente esempio dimostra l'uso della funzione mktime().

/* Input della data per determinare il giorno della settimana */
#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[] = { "Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"};
    /* Input della data dell'utente */
    printf("Anno: "); fflush(stdout); scanf("%d", &year);
    printf("Mese: "); fflush(stdout); scanf("%d", &month);
    printf("Giorno: "); fflush(stdout); scanf("%d", &day);
    /* Ottenere le informazioni attuali del tempo e modificare le informazioni di input dell'utente */
    time(&rawtime);
    timeinfo = localtime(&rawtime);
    timeinfo->tm_year = year - 1900;
    timeinfo->tm_mon = month - 1;
    timeinfo->tm_mday = day;
    /* Chiamata a mktime: timeinfo->tm_wday */
    mktime(timeinfo);
    printf ("那一天是:%s\n", weekday[timeinfo->tm_wday]);
    return 0;
}

让我们编译并运行上面的程序,这将产生以下结果:

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

C标准库 - <time.h>