Réponses:
Avec l'implémentation GNU de date
, pour afficher la date d'hier, entrez:
$ date --date="1 days ago"
OU
$ date --date="-1 day"
Pour votre question:
$ date --date="25 days ago"
OU
$ date --date="-25 day"
Pour l'utiliser avec des variables, vous pouvez utiliser $()
:
pastDate=$(date --date="-25 day")
echo "$pastDate"
Pour les n
jours de cas généraux et pour une date spécifique:
#!/bin/bash
date1="Tue Sep 2 07:53:47 EEST 2014"
echo "Before? "
read n
date --date="$date1 -$n day"
Dans la suite, la date et le nombre de jours sont déclarés.
Le script transforme les dates en secondes et calcule le point temporel 1 ( Tp1
) si le nombre de jours (en secondes) est soustrait du point temporel 2 ( Tp2
) donné. À la fin, la seconde est reconvertie en date.
Date_m=2014/09/15
Days=25
Seconds=$(echo "$Days"*60*60*24| bc -l)
Tp2date=$(date -d "$Date_m" +%Y/%m/%d)
Tp2sec=$(date -d "$TD" +%s)
Tp1sec=$(echo "$TDsec"-"$Seconds"| bc -l)
Tp1date=$(date -d @$Tp1sec)
echo "$Tp1date"
15/09/2014
pas celui de l'année en premier.
Un peu tardivement, voici une façon de gérer les dates au format jj / mm / aaaa non américaines avec l'ajustement relatif de 25 jours:
date_m='15/09/2014'
date --date "$(IFS=/ read d m y <<<"$date_m"; echo "$m/$d/$y - 25 days")" +%d/%m/%Y
21/08/2014
Il suppose un shell tel que bash
celui capable de gérer une redirection de chaîne <<<
et GNU date
.
date
n'analyse pas cependant15/09/2014
une date valide.