J'aimerais soustraire des time pour connaitre le nombre le secondes
exemple :
$heure_fin = 20:45:00
$heure_debut = 22:00:00
$diff_en_sec = $heure_debut - $ heure_fin
diff_en_sec vaut 3600+15*60 soit 216900 secondes
J'ai chercher sur CPAN.org, les bibliotheques DATE::calc DATE:manip et
cie et j'ai pas trouvé mon bonheur.
Est ce que qq peut m'aider ?
Merci d'avance.
Greg
Le début est avant la fin ?
> diff_en_sec vaut 3600+15*60 soit 216900 secondes
Personnellement, pour ce calcul, j'obtiens 4500 secondes. Vous devriez changer
de calculette.
> J'ai chercher sur CPAN.org, les bibliotheques DATE::calc DATE:manip et
> cie et j'ai pas trouvé mon bonheur.
En lisant la doc de localtime (perldoc -f localtime), vous verrez qu'il est
évoqué un module appelé Time::Local qui peut vous aider :
use Time::Local;
my $heure_debut = "20:45:00";
my $heure_fin = "22:00:00";
my $time_fin =
timelocal((reverse split ':', $heure_fin), 1, 1, 2004);
my $time_debut =
timelocal((reverse split ':', $heure_debut), 1, 1, 2004);
$diff_en_sec = $time_fin - $time_debut;
PS: j'ai remis les heures dans le bon sens... à moins que vous sachiez que ce
n'est pas la même date. Dans ce cas, il vous faut préciser la date et ne pas
choisir la date arbitraire du 1 janvier 2004 comme je l'ai fait dans mon
exemple.
--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>
C'est du perl ?
> $diff_en_sec = $heure_debut - $ heure_fin
On ne peut pas connaitre le nombre de secondes entre deux heures sans
connaitre les jours, mois et années. Il peut y avoir des irrégularités
dans le calendrier (secondes intercallaires, heures d'été, etc.)
Maintenant, j'aimerais comparer des heures :
my $heure_debut_appel = "20::50:00";
my $debut_heure_pleine = "07::00:00";
if ($heure_debut_appel > $debut_heure_pleine) {print "heure pleine\n";
...}
Sniff, ca marche pas...
Est ce que qq connait une fonction qui le fait et qui permet aussi de
calculer la durée d'appel (soustraction de time).
Merci encore
Greg
compare avec "gt" (comparaison de chaînes)
nich...@ifrance.com (nicholls) écrivait
news:f0ddef9b.04031...@posting.google.com:
Tu peux utiliser Date::Calc
avec ceci
Delta_DHMS
($Dd,$Dh,$Dm,$Ds) =
Delta_DHMS($year1,$month1,$day1, $hour1,$min1,$sec1,
$year2,$month2,$day2, $hour2,$min2,$sec2);
Le delta seras la différence entre tes 2 dates avec les heures. Si la
date est la même, il teresteras plus que les heures comme écart.
A+ Frantz
"nicholls" <nich...@ifrance.com> a écrit dans le message de
news:f0ddef9b.04031...@posting.google.com...