Linux で 0000-00-00 から日付に日数を変換する方法を教えてください。
(注:私はエポックコンバータ変換できることが分かります。たとえば、737887 は 2020 年 4 月 7 日に変換され、0000-00-00 から今日 (2020 年 4 月 7 日火曜日) までの間には 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