Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modification une date avec perl ?

3 réponses
Avatar
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

3 réponses

Avatar
tfe
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 wrote:
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


Avatar
Klaus
On May 1, 6:31 am, Mag wrote:

$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

Avatar
Paul Gaborit
À (at) 2 May 2007 00:44:35 -0700,
Klaus écrivait (wrote):
On May 1, 6:31 am, Mag wrote:

$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 - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>