C ++ Datum und Uhrzeit
Die C ++ - Standardbibliothek bietet keinen richtigen Datumstyp. C ++ erbt die Strukturen und Funktionen für die Manipulation von Datum und Uhrzeit von C. Um auf datums- und zeitbezogene Funktionen und Strukturen zugreifen zu können, müssen Sie die Header-Datei <ctime> in Ihr C ++ - Programm aufnehmen.
Es gibt vier zeitbezogene Typen: clock_t, time_t, size_t, und tm. Die Typen clock_t, size_t und time_t können die Systemzeit und das Systemdatum als eine Art Ganzzahl darstellen.
Der Strukturtyp tm enthält Datum und Uhrzeit in Form einer C-Struktur mit den folgenden Elementen:
struct tm {
int tm_sec; // seconds of minutes from 0 to 61
int tm_min; // minutes of hour from 0 to 59
int tm_hour; // hours of day from 0 to 24
int tm_mday; // day of month from 1 to 31
int tm_mon; // month of year from 0 to 11
int tm_year; // year since 1900
int tm_wday; // days since sunday
int tm_yday; // days since January 1st
int tm_isdst; // hours of daylight savings time
}
Im Folgenden sind die wichtigen Funktionen aufgeführt, die wir bei der Arbeit mit Datum und Uhrzeit in C oder C ++ verwenden. Alle diese Funktionen sind Teil der Standard-C- und C ++ - Bibliothek, und Sie können ihre Details anhand der unten angegebenen C ++ - Standardbibliothek überprüfen.
Sr.Nr. | Funktion & Zweck |
---|---|
1 | time_t time(time_t *time); Dies gibt die aktuelle Kalenderzeit des Systems in Sekunden zurück, die seit dem 1. Januar 1970 vergangen sind. Wenn das System keine Zeit hat, wird .1 zurückgegeben. |
2 | char *ctime(const time_t *time); Dies gibt einen Zeiger auf eine Zeichenfolge des Formulars Tag Monat Jahr Stunden: Minuten: Sekunden Jahr \ n \ 0 zurück . |
3 | struct tm *localtime(const time_t *time); Dies gibt einen Zeiger auf die zurück tm Struktur, die die Ortszeit darstellt. |
4 | clock_t clock(void); Dies gibt einen Wert zurück, der ungefähr der Zeit entspricht, die das aufrufende Programm ausgeführt wurde. Ein Wert von 0,1 wird zurückgegeben, wenn die Zeit nicht verfügbar ist. |
5 | char * asctime ( const struct tm * time ); Dies gibt einen Zeiger auf eine Zeichenfolge zurück, die die in der Struktur gespeicherten Informationen enthält, auf die durch die in die Form konvertierte Zeit verwiesen wird: Tag Monat Datum Stunden: Minuten: Sekunden Jahr \ n \ 0 |
6 | struct tm *gmtime(const time_t *time); Dies gibt einen Zeiger auf die Zeit in Form einer TM-Struktur zurück. Die Zeit wird in der koordinierten Weltzeit (UTC) dargestellt, die im Wesentlichen die Greenwich Mean Time (GMT) ist. |
7 | time_t mktime(struct tm *time); Dies gibt das Kalenderzeitäquivalent der Zeit zurück, die in der Struktur gefunden wurde, auf die die Zeit zeigt. |
8 | double difftime ( time_t time2, time_t time1 ); Diese Funktion berechnet die Differenz in Sekunden zwischen Zeit1 und Zeit2. |
9 | size_t strftime(); Mit dieser Funktion können Datum und Uhrzeit in einem bestimmten Format formatiert werden. |
Aktuelles Datum und Uhrzeit
Angenommen, Sie möchten das aktuelle Systemdatum und die aktuelle Systemzeit entweder als Ortszeit oder als koordinierte Weltzeit (UTC) abrufen. Das Folgende ist das Beispiel, um dasselbe zu erreichen -
#include <iostream>
#include <ctime>
using namespace std;
int main() {
// current date/time based on current system
time_t now = time(0);
// convert now to string form
char* dt = ctime(&now);
cout << "The local date and time is: " << dt << endl;
// convert now to tm struct for UTC
tm *gmtm = gmtime(&now);
dt = asctime(gmtm);
cout << "The UTC date and time is:"<< dt << endl;
}
Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:
The local date and time is: Sat Jan 8 20:07:41 2011
The UTC date and time is:Sun Jan 9 03:07:41 2011
Formatieren Sie die Zeit mit struct tm
Das tmStruktur ist sehr wichtig, wenn Sie mit Datum und Uhrzeit in C oder C ++ arbeiten. Diese Struktur enthält Datum und Uhrzeit in Form einer C-Struktur, wie oben erwähnt. Die meisten zeitbezogenen Funktionen verwenden die tm-Struktur. Das Folgende ist ein Beispiel, das verschiedene datums- und zeitbezogene Funktionen und die tm-Struktur verwendet -
Bei der Verwendung der Struktur in diesem Kapitel gehe ich davon aus, dass Sie grundlegende Kenntnisse über die C-Struktur und den Zugriff auf Strukturelemente mit dem Operator Pfeil -> haben.
#include <iostream>
#include <ctime>
using namespace std;
int main() {
// current date/time based on current system
time_t now = time(0);
cout << "Number of sec since January 1,1970 is:: " << now << endl;
tm *ltm = localtime(&now);
// print various components of tm structure.
cout << "Year:" << 1900 + ltm->tm_year<<endl;
cout << "Month: "<< 1 + ltm->tm_mon<< endl;
cout << "Day: "<< ltm->tm_mday << endl;
cout << "Time: "<< 5+ltm->tm_hour << ":";
cout << 30+ltm->tm_min << ":";
cout << ltm->tm_sec << endl;
}
Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:
Number of sec since January 1,1970 is:: 1588485717
Year:2020
Month: 5
Day: 3
Time: 11:31:57