[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] Re: calcul de temps



On Fri, Aug 01, 2014 at 07:28:47AM +0000, moi-meme wrote:
> >   Le shell, ça va bien un peu mais ça devient vite difficile à
> > maintenir et très gourmand en processus inutiles. Il faut savoir
> > utiliser les bons outils.
> c'est ce que je recherche

Je seconde Sylvain: la gestion de date, c'est toujours plus
compliqué que l'on ne croit, et extrèmement difficile à
tester correctement. Un jour, j'écrivis un script bash en
février, qui travaillait sur des dates. Tout se passa bien.
Des mois plus tard, tout se mit à foirer lamentablement. Hé
oui, en octobre, le numéro du mois passe à 2 chiffres, et
mes bidouilles ne le supportaient pas.

Moi, je te conseillerais Time::Duration de Perl, que j'avais
utilisé dans ce petit script pour calculer le nombre de
jours entre 2 dates:


#! /usr/bin/perl -w
# Usage: diffdate 30JUL2005 01AUG2014
# -> 9 years and 4 days

use strict;
use Time::ParseDate;
use Time::Duration;

my $i1 = shift;
my $i2 = shift;

# Turn my date format (02SEP) to ParseDate (02 SEP)
$i1 =~ s/(\d+)([a-z]+)(\d*)$/$1 $2 $3/i;
$i2 =~ s/(\d+)([a-z]+)(\d*)$/$1 $2 $3/i;

my $t1 = parsedate($i1, UK => 1, PREFER_FUTURE => 0);
my $t2 = parsedate($i2, UK => 1, PREFER_FUTURE => 0);

my $d = duration($t2 - $t1);

print "$d\n";



Reply to: