Я хочу спросить, как преобразовать количество дней из 0000-00-00 в дату в Linux?
(Примечание: я видел изepochconverterчто его можно преобразовать. Например, 737887 преобразуется в 7 апреля 2020 года, то есть между 0000-00-00 и сегодняшним днем (вторник, 07 апреля 2020 года) есть 737887 дней.)
решение1
Во многих системах лучше всего работать с днями с эпохи (1970-01-01).
Таким образом, вы можете сохранить постоянное количество дней между 0000-00-00 и 1970-01-01, что составляет ровно 719528. Затем просуммируйте это количество с днями с начала эпохи:
echo $(( 719528 + $(date --utc --date "$1" +%s)/86400 ))
решение2
Модуль Perl DateTime хорош для этих целей:
$ perl -MDateTime -E '
$base = DateTime->new(year=>0, month=>1, day=>1);
$now = DateTime->now;
say $now->delta_days($base)->in_units("days");
'
737887