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

Tutoriel de base en langage C

Contrôle de flux en langage C

C语言函数

C语言数组

C语言指针

C语言字符串

Structure en langage C

Fichier en langage C

Autres C

Manuel de référence en langage C

Utilisation et exemple de la fonction mktime() de la bibliothèque C

C语言标准库 - <time.h>

Fonction de bibliothèque C time_t mktime(struct tm *timeptr) Convertir timeptr La structure pointée est convertie en une valeur time_t en fonction du fuseau horaire local.

Déclaration

Voici la déclaration de la fonction mktime() :

time_t mktime(struct tm *timeptr)

Paramètres

  • timeptr -- C'est un pointeur vers la valeur time_t qui représente l'heure calendaire, cette heure calendaire est décomposée en plusieurs parties. Voici les détails de la structure timeptr :
struct tm {
   int tm_sec;         /* Les secondes, dans la plage de 0 à 59                */
   int tm_min;         /* Les minutes, dans la plage de 0 à 59                */
   int tm_hour;        /* L'heure, dans la plage de 0 à 23                */
   int tm_mday;        /* Le jour du mois, dans la plage de 1 à 31                    */
   int tm_mon;         /* Le mois, dans la plage de 0 à 11                */
   int tm_year;        /* de 1900 à partir de l'année                */
   int tm_wday;        /* Le jour de la semaine, dans la plage de 0 à 6                */
   int tm_yday;        /* Le jour de l'année, dans la plage de 0 à 365                    */
   int tm_isdst;       /* Heure d'été                        */    
};

Valeur de retour

Cette fonction renvoie une valeur de type time_t correspondant à l'heure calendaire passée en paramètre. En cas d'erreur, elle renvoie -1 Valeur.

Exemple en ligne

Le fichier d'exemple suivant montre l'utilisation de la fonction mktime().

/* Entrer la date pour déterminer le jour de la semaine */
#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[] = { "Dimanche", "Lundi","Mardi", "Mercredi","Jeudi", "Vendredi", "Samedi"};
    /* Entrée de date de l'utilisateur */
    printf("年: "); fflush(stdout); scanf("%d",&year);
    printf("月: "); fflush(stdout); scanf("%d",&month);
    printf("日: "); fflush(stdout); scanf("%d",&day);
    /* Obtenir les informations actuelles du temps et modifier les informations d'entrée de l'utilisateur */
    time(&rawtime);
    timeinfo = localtime(&rawtime);
    timeinfo->tm_year = year - 1900;
    timeinfo->tm_mon = month - 1;
    timeinfo->tm_mday = day;
    /* Appel de mktime: timeinfo->tm_wday  */
    mktime(timeinfo);
    printf("那一天是:%s\n", weekday[timeinfo]}->tm_wday]);
    return 0;
}

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

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

C语言标准库 - <time.h>