Tips & Tricks del giorno:
A volte in uno script può essere necessario sottrarre o sommare un numero arbitrario di giorni e/o mesi e/o anni da una data;
Ecco l’esempio di una soluzione per la sottrazione.
NOTA: per l’addizione é sufficiente invertire il segno di ciascuna variabile.
Versione Bash:
# ---------------------------------------------------------------------------------- # - Script file name : subtractdate.sh # - Author : NM # - DNS administrator : NM - Tel. xxx, Mobile: xxx - # - Create : 28.12.2019 # - Last Update : 28.12.2019 # - Description : Sottrae n giorni dalla data attuale # - Position : /usr/local/script/ # - note : NON modificare senza AUTORIZZAZIONE dell'AMMINISTRATORE # ----------------------------------------------------------------------------------- #!/bin/bash DAYS=$1 MONTHS=$2 YEARS=$3 [ -z $DAYS ] && DAYS=0 [ -z $MONTHS ] && MONTHS=0 [ -z $YEARS ] && YEARS=0 RESDATE=$(date -d "$date -$DAYS days -$MONTHS months -$YEARS years" '+%d/%m/%Y') echo $RESDATE
Versione Powershell:
[CmdletBinding()]
Param(
[Parameter(Mandatory=$false)][int]$days,
[Parameter(Mandatory=$false)][int]$months,
[Parameter(Mandatory=$false)][int]$years
)
Process {
if (($days -eq $null) || ($days -eq "")) {
$days=0
}
if (($months -eq $null) || ($months -eq "")) {
$months=0
}
if (($years -eq $null) || ($years -eq "")) {
$years=0
}
$today = Get-Date
return $($($today.AddYears(-$years).AddMonths(-$months)).AddDays(-$days))
}