Modification une date avec perl ?

Le
Mag
Bonjour,

Je recherche un petit exemple perl qui permet
de generer une nouvelle date d'apres la date et l'heure
du jour.

Je m'explique, je mets la date par exemple dans une variable:

$datedujour="2007/05/01 02:00:00";

je lui demande de me revenir 8 jour en arriere sur cette date
donc il me sort un $dateancien="2007/04/23 02:00:00";

Merci d'avance pour votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
tfe
Le #143227
Bonjour,

Tu as un module cpan qui la fonction POSIX mktime qui le fait.
cette fonction est disponible en chargeant le module posix...
use POSIX;
La documentation est disponible ici:
http://search.cpan.org/~nwclark/perl-5.8.8/ext/POSIX/POSIX.pod

--
tfe
http://tfeserver.homelinux.com

On 1 mai, 06:31, Mag
Bonjour,

Je recherche un petit exemple perl qui permet
de generer une nouvelle date d'apres la date et l'heure
du jour.

Je m'explique, je mets la date par exemple dans une variable:

$datedujour="2007/05/01 02:00:00";

je lui demande de me revenir 8 jour en arriere sur cette date
donc il me sort un $dateancien="2007/04/23 02:00:00";

Merci d'avance pour votre aide


Klaus
Le #143226
On May 1, 6:31 am, Mag
$datedujour="2007/05/01 02:00:00";

je lui demande de me revenir 8 jour en arriere sur cette date
donc il me sort un $dateancien="2007/04/23 02:00:00";


Voir la FAQ:

============== début FAQ ====== =============
Perlfaq 4:
http://perl.enstimac.fr/DocFr/perlfaq4.html

Comment trouver la date d'hier ?
(contribution de brian d foy)

Utilisez l'un des modules Date. Le module DateTime fait cela
simplement et vous donne le même moment (même heure) mais hier.

use DateTime;
my $hier = DateTime->now->subtract( days => 1 );
print "Hier était $hiern";

Vous pouvez aussi choisir le module Date::Calc en utilisant sa
fonction Today_and_Now.

use Date::Calc qw( Today_and_Now Add_Delta_DHMS );
my @hier = Add_Delta_DHMS( Today_and_Now(), -1, 0, 0, 0 );
print "@hiern";

De nombreuses personnes essaient d'utiliser le temps plutôt que le
calendrier pour gérer les dates en supposant que tous les jours ont
une durée de vingt quatre heures. Or pour de nombreuses personnes, ils
existent deux jours par an où ce n'est pas vrai : les jours de
changement d'heure (l'heure d'été et l'heure d'hiver). Laissez donc
les modules faire ce boulot.
============== fin FAQ ======== ===========

--
Klaus

Paul Gaborit
Le #143224
À (at) 2 May 2007 00:44:35 -0700,
Klaus
On May 1, 6:31 am, Mag
$datedujour="2007/05/01 02:00:00";

je lui demande de me revenir 8 jour en arriere sur cette date
donc il me sort un $dateancien="2007/04/23 02:00:00";


Voir la FAQ:


[... une très bonne réponse ...]

Il y a aussi la réponse de perliaq (infrequently asked questions about
Perl) pour la date du lendemain :

sleep 60*60*24;
print localtime();

Peut-être qu'on peut l'adapter pour la date d'il y a huit jours :

sleep -8*60*60*24;
print localtime();

Attention: je n'ai pas testé ce code ! ;-)

--
Paul Gaborit - Perl en français -

Publicité
Poster une réponse
Anonyme