Ich möchte fragen, wie man in Linux die Anzahl der Tage von 0000-00-00 in ein Datum umrechnet?
(Anmerkung: Ich sah vonEpochenkonverterdass es konvertiert werden kann. Beispielsweise wird 737887 in den 7. April 2020 konvertiert, d. h.: Zwischen 0000-00-00 und heute (Dienstag, 7. April 2020) liegen 737887 Tage.)
Antwort1
Auf vielen Systemen ist es am besten, mit Tagen seit der Epoche (01.01.1970) zu arbeiten.
Sie können also eine konstante Anzahl von Tagen zwischen 0000-00-00 und 1970-01-01 beibehalten, die genau 719528 beträgt. Dann summieren Sie es mit den Tagen seit der Epoche:
echo $(( 719528 + $(date --utc --date "$1" +%s)/86400 ))
Antwort2
Das DateTime-Modul von Perl eignet sich für diese Dinge:
$ perl -MDateTime -E '
$base = DateTime->new(year=>0, month=>1, day=>1);
$now = DateTime->now;
say $now->delta_days($base)->in_units("days");
'
737887