PDA

View Full Version : POSIX-UNIX SJELL Operazioni con le Date


ZINGAROADSL
14-07-2006, 13:24
Ho bisogno di un aiuto... devo sottrarre un numero definito di giorni (variabile) dalla data attuale di sistema (comando DATE) come posso fare??

si possono eseguire operazioni aritmetiche tra date ???
con che funzione posoo estrapolare il numero dei giorni dalla stringa della data (GGmmaa)?

ho bisogno di qualche informazione per seguira questa cosa in uno script con sintassi compatibile per ambienti unix/linux o in POSIX (sarebbe piu' carino)

andbin
14-07-2006, 14:24
Ho bisogno di un aiuto... devo sottrarre un numero definito di giorni (variabile) dalla data attuale di sistema (comando DATE) come posso fare??

si possono eseguire operazioni aritmetiche tra date ???
con che funzione posoo estrapolare il numero dei giorni dalla stringa della data (GGmmaa)?

ho bisogno di qualche informazione per seguira questa cosa in uno script con sintassi compatibile per ambienti unix/linux o in POSIX (sarebbe piu' carino)Guarda ... io personalmente non ho mai avuto bisogno, a livello di shell (bash nel modo specifico), di fare calcoli sulle date. Non mi risulta che ci siano dei comandi o funzioni per fare questi calcoli. Ovviamente non ne sono sicuro al 100%, non prendere per oro colato quanto ho appena detto. ;)

Dipende da cosa devi fare di preciso, cioč ammesso di poter fare delle operazioni matematiche sulla data, cosa devi fare? stampare la data con un certo formato?? fare delle comparazioni??

Puoi comunque fare tutte le operazioni che vuoi ricorrendo ad altri linguaggi di script come il Perl, Python o anche in linguaggio "C".

Per esempio puoi usare questo script Perl per stampare una data "shiftata":
#!/usr/bin/perl

use strict;
use POSIX;

if (@ARGV == 2)
{
my $t = time;

$t += $ARGV[0];

my @tm = localtime ($t);
my $str = strftime ($ARGV[1], @tm);

print $str . "\n";
}
Ammesso che lo script si chiami dateadd.pl, puoi fare:

dateadd.pl -7200 "%d/%m/%Y %H:%M:%S"

per stampare la data con 2 ore in meno.