Grüß euch
Jidai ist eine Mini-Lib (single header) die aus den Präprozessor Defines
DATE und TIME (inkl. double underscores) einen sinnvollen Zeitstempel
der Compile Zeit bestehend aus Datum und Uhrzeit erzeugt.
Im wesentlichen beschränkt sich das ganze auf 2 Optionen:
1.) Die Erzeugung folgenden structs
1 | struct CompilationTime {
|
2 | uint8_t day;
|
3 | uint8_t month;
|
4 | uint16_t year;
|
5 | uint8_t hour;
|
6 | uint8_t minute;
|
7 | uint8_t second;
|
8 | };
|
durch die Funktion
1 | constexpr CompilationTime make_compilation_time();
|
2.) Die Erzeugung eines unix time stamps zu einer gewissen Epoch.
Der Rückgabewert ist in diesem Fall ein Template, sollte man ein
spezielles Format brauchen. (z.B. lediglich 4-byte signed, wie es recht
häufig zu sehen ist)
1 | template<typename T = time_t>
|
2 | constexpr T make_unix_compilation_time(CompilationTime const epoch = default_epoch);
|
default_epoch entspricht der klassischen Unix Epoch 1.1.1970.
1 | inline constexpr CompilationTime default_epoch{.day = 1, .month = 1, .year = 1970};
|
Interessante Randnotiz: Sowohl unter GCC als auch unter Clang beginnt
die Unix Epoche erst um 1 Uhr und nicht mit Mitternacht... ;)
Header inkl. Test gibts hier:
https://gitlab.com/higaski/Jidai