C-Bibliotheksfunktionen -mktime()

C-Standardbibliothek - <time.h>

Beschreibung

C-Bibliotheksfunktionentime_t mktime(struct tm *timeptr)holdtimeptrWandelt die Struktur, auf die gezeigt wird, in Sekunden seit dem 1. Januar 1970 um und gibt bei einem Fehler -1 zurück.

Deklaration

Das Folgende ist die Deklaration der Funktion mktime().

time_t mktime(struct tm *timeptr)

Parameter

  • timeptr-- Dies ist ein Zeiger auf einen time_t-Wert, der die Kalenderzeit repräsentiert und in die folgenden Teile zerlegt wird. Im Folgenden finden Sie die Details der timeptr-Struktur:
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;       /* 夏令时                        */    
};

Rückgabewert

Diese Funktion gibt die Anzahl der Sekunden seit dem 1. Januar 1970 zurück. Bei einem Fehler gibt sie den Wert -1 zurück.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der Funktion mktime().

Beispiel

#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("Fehler: Zeit kann mit mktime nicht erstellt werden\n");
    } else {
        strftime(buffer, sizeof(buffer), "%c", &info );
        printf(Puffer);
    }

    return(0);
}

Lassen Sie uns das obige Programm kompilieren und ausführen; dies erzeugt das folgende Ergebnis:

Sun Jul  4 00:00:01 2021

Beispiel

/*Geben Sie ein Datum ein, um den Wochentag zu bestimmen*/ #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[] = { "Sonntag", "Montag","Dienstag", "Mittwoch","Donnerstag", "Freitag", "Samstag"}; /*Datum eingeben*/ printf ("Jahr:"); fflush(stdout); scanf ("%d",&year); printf ("Monat:"); fflush(stdout); scanf ("%d",&month); printf ("Tag:"); fflush(stdout); scanf ("%d",&day); /*Aktuelle Zeitinformationen abrufen und die Eingabeinformationen des Benutzers ändern*/ time ( &rawtime ); timeinfo = localtime ( &rawtime ); timeinfo->tm_year = Jahr - 1900; timeinfo->tm_mon = Monat - 1; timeinfo->tm_mday = Tag; /*mktime aufrufen: timeinfo->tm_wday*/ mktime ( timeinfo ); printf ("Der Tag ist: %s\n", Wochentag[timeinfo->tm_wday]); return 0; }

Lassen Sie uns das obige Programm kompilieren und ausführen; dies erzeugt das folgende Ergebnis:

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

C-Standardbibliothek - <time.h>

Weitere Erweiterungen