/ / Oblicz dni między dwiema datami w systemie AIX za pomocą Bash - bash, date, ksh, aix

Oblicz dni pomiędzy dwiema datami w systemie AIX za pomocą Bash - bash, date, ksh, aix

Próbuję ustalić liczbę dni w dwóch datach. Poniżej znajduje się kod, który mam doskonale działający w systemie UNIX.

date1=$(date "+%m/%d/%y")
temp1=4/8/24
echo $((($(date -u -d $temp1 +%s) - $(date -u -d $date1 +%s)) / 86400))

Kiedy wykonuję powyższy skrypt w systemie AIX, otrzymuję poniżej błąd:

data: nie uznana flaga: d

Użycie: date [-u] [+ "Deskryptory pól"]

data: nie uznana flaga: d

Użycie: date [-u] [+ "Deskryptory pól"]

(-) / 86400: błąd składni: oczekiwany operand (błąd token ") / 86400") `

To jest środowisko PROD i nie mam uprawnień administratora do instalowania na nim żadnego pakietu.

Odpowiedzi:

1 dla odpowiedzi № 1

Zakłada się, że miesiąc to 1/12 roku i że używasz właściwej cyfry lata:

#!/usr/bin/awk -f
function mktm(datespec) {
split(datespec, q, "/")
return 
(q[3] - 1970) * 60 * 60 * 24 * 365.25 + 
(q[1] -    1) * 60 * 60 * 24 * 365.25 / 12 + 
(q[2] -    1) * 60 * 60 * 24
}
function ceil(x) {
y = int(x); return y < x ? y + 1 : y
}
BEGIN {
srand()
print ceil((mktm(ARGV[1]) - srand()) / (60 * 60 * 24))
}