Convertir días a la fecha

Convertir días a la fecha

Quiero preguntar cómo convertir la cantidad de días desde 0000-00-00 hasta la fecha en Linux.

(Nota: vi desdeconvertidor de épocaque se pueda convertir. Por ejemplo, 737887 se convierte al 7 de abril de 2020, es decir, hay 737887 días entre 0000-00-00 y hoy (martes 07 de abril de 2020).)

Respuesta1

En muchos sistemas, es mejor trabajar con días desde la época (1970-01-01).

Por lo tanto, puede mantener un número constante de días entre 0000-00-00 y 1970-01-01, que es exactamente 719528. Luego, resúmalo con los días transcurridos desde la época:

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

Respuesta2

El módulo Perl DateTime es bueno para esto:

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

información relacionada