Visualizzazione dei risultati da 1 a 4 su 4

Discussione: data in perl

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    28

    data in perl

    Salve a tutti
    Sto utilizzando uno script in perl che una volta lanciato con un parametro esterno numerico stampa a video una data passata.

    Mi spiego meglio con un esempio
    se lancio lo script data_vecchia.pl con l'opzione 2 mi stampa a video la data di 2 giorni fa
    es. oggi è 20050124

    /home/script =>data_vecchia.pl 2
    20050122

    Il mio problema è il seguente..come faccio ad invertire il tipo di calcolo ovvero impostare il parametro all'interno dello script e passare come opzione una data qualunque ?
    es.

    /home/script =>data_vecchia.pl 20050118
    20050116

    in calce lo script

    ------------------------------------

    #!/usr/bin/perl
    use POSIX qw(strftime);
    $before=$ARGV[0];
    $periodo=strftime "%Y%m%d", localtime(time - $before*86400);
    print $periodo;

    ---------------------------------------

    grazie per l'aiuto

    Ciao

  2. #2
    Non sono riuscito a capire cosa ti serve.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    28
    mi spiego meglio

    vorrei ottenere una data vecchia partendo da un'altra data vecchia e non da quella locale (localtime)

    per esempio vorrei cercare tutti i file che si chiamano NOMEFILE_DATA.log dove DATA è la data di 15 giorni fa e da li cancellare quelli 2 giorni + vecchi di quella data.

    Lo so sembra una str....ta perchè potrei cercare direttamente quelli di 17 giorni prima ma a me serve quella funzionalità per un'altro scopo.


    spero di averti spiegato bene..
    man is best man friend

  4. #4
    ho capito, non è una cosa banale risolvibile con due righe di codice. La manipolazione del tempo riserve trappole imprevedibili, pensa alla differenza se tu vuoi sapere quale era il giorno che precedeva di due il 01/03 e sei in un anno bisestile o meno!!

    Per cui devi riscrivere il programma affidandoti a moduli Perl adatti tipo Date::Manip che si trova su http://search.cpan.org

    Quello che hai presentato tu era semplice proprio e solamente perchè partiva dal momento attuale che è un numero intero indicato dalla CPU di secondi a partire dal 01/01/1970
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.