Converter dias em data

Converter dias em data

Quero perguntar como converter o número de dias de 0000-00-00 até a data no Linux?

(Nota: eu vi deconversor de épocaque ele pode ser convertido. Por exemplo, 737887 é convertido para 7 de abril de 2020, ou seja, há 737887 dias entre 0000-00-00 e hoje (terça-feira, 7 de abril de 2020).)

Responder1

Em muitos sistemas, é melhor trabalhar com dias desde a época (01/01/1970).

Portanto, você pode manter um número constante de dias entre 0000-00-00 e 1970-01-01, que é exatamente 719528. Em seguida, some com os dias desde a época:

echo $(( 719528 + $(date --utc --date "$1" +%s)/86400 ))

Responder2

O módulo perl DateTime é bom para estas coisas:

$ perl -MDateTime -E '
    $base = DateTime->new(year=>0, month=>1, day=>1);
    $now = DateTime->now;
    say $now->delta_days($base)->in_units("days");
'
737887

informação relacionada