[PERL] date année ... encore ....grrr
Résolu/Fermé
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
-
19 mai 2009 à 15:24
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 - 19 mai 2009 à 22:46
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 - 19 mai 2009 à 22:46
A voir également:
- [PERL] date année ... encore ....grrr
- Publipostage date en anglais ✓ - Forum Excel
- Publipostage date inversée ✓ - Forum Word
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. - Forum Samsung
- Passé cette date - Forum Logiciels
- Formule excel si date supérieur à une autre date ✓ - Forum Excel
6 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
19 mai 2009 à 15:30
19 mai 2009 à 15:30
Salut,
# Constantes @monthNames = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); %monthNums = qw( Jan 1 Feb 2 Mar 3 Apr 4 May 5 Jun 6 Jul 7 Aug 8 Sep 9 Oct 10 Nov 11 Dec 12); ($thisMon, $thisYr) = (localtime(time()))[4,5]; $thisYr += 1900; $thisMon +=1; print localtime(time())."\n"; print "thisMon : $thisMon\n"; print "thisYr : $thisYr\n\n";
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
19 mai 2009 à 22:37
19 mai 2009 à 22:37
Re,
ça ne me confirme pas que le code est foireux depuis le début et que ceci fonctionnera le mois prochain ...
Ben, il suffit de voir la fonction localtime de perl et tu comprendras que ça fonctionnera même l'année prochaine
Voici un extrait de la commande perldoc -f localtime
localtime EXPR
localtime
Converts a time as returned by the time function to a 9-element list with the time analyzed for the local time zone. Typically used as follows:
# 0 1 2 3 4 5 6 7 8
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(time);
All list elements are numeric, and come straight out of the C `struct tm'. $sec, $min, and $hour are the seconds, minutes, and hours of the specified time.
$mday is the day of the month, and $mon is the month itself, in the range 0..11 with 0 indicating January and 11 indicating December. This makes it easy to get a month name from a list:
Donc tu vois bien que les mois sont numérotés de 0 à 11 ce qui veut dire que tu dois ajouter 1 pour avoir de 1 à 12.
ça ne me confirme pas que le code est foireux depuis le début et que ceci fonctionnera le mois prochain ...
Ben, il suffit de voir la fonction localtime de perl et tu comprendras que ça fonctionnera même l'année prochaine
Voici un extrait de la commande perldoc -f localtime
localtime EXPR
localtime
Converts a time as returned by the time function to a 9-element list with the time analyzed for the local time zone. Typically used as follows:
# 0 1 2 3 4 5 6 7 8
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(time);
All list elements are numeric, and come straight out of the C `struct tm'. $sec, $min, and $hour are the seconds, minutes, and hours of the specified time.
$mday is the day of the month, and $mon is the month itself, in the range 0..11 with 0 indicating January and 11 indicating December. This makes it easy to get a month name from a list:
Donc tu vois bien que les mois sont numérotés de 0 à 11 ce qui veut dire que tu dois ajouter 1 pour avoir de 1 à 12.
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
19 mai 2009 à 15:33
19 mai 2009 à 15:33
euuu ...t'es sûr ?
parceque si le mois prochain ça passe à 7 au lieu de 6, je meurt ... il faut ajouter parceque ça démarre à 0 ? ce qui voudrait dire que mon super code de la mort il est foireux depuis des mois ??????
(inutile de taper sur une ambulance ...)
Stéphane
parceque si le mois prochain ça passe à 7 au lieu de 6, je meurt ... il faut ajouter parceque ça démarre à 0 ? ce qui voudrait dire que mon super code de la mort il est foireux depuis des mois ??????
(inutile de taper sur une ambulance ...)
Stéphane
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
19 mai 2009 à 19:35
19 mai 2009 à 19:35
Re,
Euuu ...t'es sûr ?
Au lieu de poser la question et au lieu de te répondre, il fallait (je l'ai fais ;-) faire un petit test ;-))
Euuu ...t'es sûr ?
Au lieu de poser la question et au lieu de te répondre, il fallait (je l'ai fais ;-) faire un petit test ;-))
lami20j@debian:~/trash$ cat mois.pl #!/usr/bin/perl use strict;use warnings; my ($thisMon, $thisYr) = (localtime(time()))[4,5]; $thisYr += 1900; $thisMon +=1; print localtime(time())."\n"; print "thisMon : $thisMon\n"; print "thisYr : $thisYr\n\n"; __END__ lami20j@debian:~/trash$ perl mois.pl Tue May 19 19:33:43 2009 thisMon : 5 thisYr : 2009
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
19 mai 2009 à 21:54
19 mai 2009 à 21:54
Hello,
Sans vouloir te paraitre insistant, ceci ne confirme pas la solution ...
Je suis d'accord avec toi qu'incrémenter le compteur mois passe bien le mois à 5 pour may, cependant, ça ne me confirme pas que le code est foireux depuis le début et que ceci fonctionnera le mois prochain ... pour bien faire il faudrait que je change la date systeme du linux ... (impossible vu qu'il fait tourner du postfix en continue) ...
ou faire l'opération sur une fausse date et pas sur le localtime mais là on part sur un test biaisé ...(sans jeu de mot)
En tout cas, merci, je suis traumatisé d'avoir pu passer à côté de ce genre d'erreur pendant des mois ...
Stéphane
Sans vouloir te paraitre insistant, ceci ne confirme pas la solution ...
Je suis d'accord avec toi qu'incrémenter le compteur mois passe bien le mois à 5 pour may, cependant, ça ne me confirme pas que le code est foireux depuis le début et que ceci fonctionnera le mois prochain ... pour bien faire il faudrait que je change la date systeme du linux ... (impossible vu qu'il fait tourner du postfix en continue) ...
ou faire l'opération sur une fausse date et pas sur le localtime mais là on part sur un test biaisé ...(sans jeu de mot)
En tout cas, merci, je suis traumatisé d'avoir pu passer à côté de ce genre d'erreur pendant des mois ...
Stéphane
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
19 mai 2009 à 22:46
19 mai 2009 à 22:46
et pan dans les dents ... encore bravo lami20j ...
MERCI :o)
Stéphane
MERCI :o)
Stéphane