Namensräume
Varianten
Aktionen

Datums- und Zeitenunterstützung

Aus cppreference.com
< cpp

C++ unterstützt zwei Arten von Zeitmanipulationen:

  • Die chrono-Bibliothek ist eine Sammlung von flexiblen Typen, die das Benutzen von Zeiten, Zeiträumen und Zeitpunkten mit unterschiedlichen Präzisionsgraden (z.B. std::chrono::time_point) ermöglichen.
  • Die Datums- und Uhrzeitbibliothek im C-Stil (beispielsweise std::time).

Inhaltsverzeichnis

[Bearbeiten] Die chrono-Bibliothek

Die chrono-Bibliothek definiert drei Haupttypen (Dauer, Uhren und Zeitpunkte), sowie Hilfsfunktionen und gemeinsame typedefs.

[Bearbeiten] Zeitdauer

Eine Zeitdauer besteht aus einer Zeitspanne, die als eine Anzahl von Schritten einiger Zeiteinheit definiert ist. Beispielsweise könnte "42 Sekunden" durch eine Dauer, bestehend aus 42 Schritten einer einsekündigen Zeiteinheit dargestellt werden.

Defined in header <chrono>
Defined in namespace std::chrono
(C++11)
ein Zeitintervall
Original:
a time interval
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(Klassen-Template) [edit]

[Bearbeiten] Uhren

Eine Uhr besteht aus einem Ausgangspunkt (oder Epoche) und einer Schrittweite. Zum Beispiel kann eine Uhr eine Epoche, die am 1. Januar 1970 began, und eine Schrittweite von 1 Sekunde besitzen. C++ definiert drei Typen von Uhren:

Defined in header <chrono>
Defined in namespace std::chrono
Wanduhr Zeit aus dem System-weite Echtzeituhr
Original:
wall clock time from the system-wide realtime clock
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(Klasse) [edit]
monotone Uhr, wird niemals angepasst
Original:
monotonic clock that will never be adjusted
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(Klasse) [edit]
die Uhr mit der kürzesten Tick Zeitraum zur Verfügung
Original:
the clock with the shortest tick period available
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(Klasse) [edit]

[Bearbeiten] Zeitpunkt

Ein Zeitpunkt ist eine Zeitdauer, die seit Beginn der Epoche der spezielle Uhr andauert.

Defined in header <chrono>
Defined in namespace std::chrono
a point in time
(Klassen-Template) [edit]

[Bearbeiten] Datums- und Uhrzeitbibliothek im C-Stil

Weiterhin sind die Datums- und Uhrzeitfunktionen im C-Stil, wie std::time_t, std::difftime und CLOCKS_PER_SEC verfügbar.

[Bearbeiten] Beispiel

Dieses Beispiel zeigt Informationen über die Ausführungszeit einer aufgerufenen Funktion:

#include <iostream>
#include <chrono>
#include <ctime>
 
int fibonacci(int n)
{
    if (n < 3) return 1;
    return fibonacci(n-1) + fibonacci(n-2);
}
 
int main()
{
    std::chrono::time_point<std::chrono::system_clock> start, end;
    start = std::chrono::system_clock::now();
    int result = fibonacci(42);
    end = std::chrono::system_clock::now();
 
    int elapsed_seconds = std::chrono::duration_cast<std::chrono::seconds>
                             (end-start).count();
    std::time_t end_time = std::chrono::system_clock::to_time_t(end);
 
    std::cout << "finished computation at " << std::ctime(&end_time)
              << "elapsed time: " << elapsed_seconds << "s\n";
}

Possible output:

finished computation at Sat Jun 16 20:42:57 2012
elapsed time: 3s