English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C 库函数 time_t mktime(struct tm *timeptr) 把 timeptr 所指向的结构被转换为一个基于本地时区的 time_t 值。
下面是 mktime() 函数的声明。
time_t mktime(struct tm *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 */ };
La funzione restituisce un valore time_t, che corrisponde al tempo calendario passato come parametro. In caso di errore, viene restituito il valore -1.
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 那一天是:周四