problème d'affichage du format de la date (AAAA-MM-JJ) - Perl - Programmation
Marsh Posté le 17-04-2008 à 12:11:50
Utilise la première solution, avec ce pattern de sprintf : '%04d-%02d-%02d'
Explication : %04d signifie : "entier de longueur fixe de 4 caractères, et un padding qui se fait avec des '0' pour compléter les vides".
Marsh Posté le 17-04-2008 à 14:01:16
merci pour la réponse, encore une fois, j'ai eu le droit à une réponse express avec qui plus est la bonne réponse lol.
à la poche pleine
Marsh Posté le 17-04-2008 à 14:19:11
Bref, au final, un truc plus ou moins comme ceci
Code :
|
Si quelqu'un a une methode pour additionner deux arrays d'entiers avec un ou plusieurs maps, je suis preneur, pour faire un one-liner
En Perl 6, il y a le bon operateur: >>+<<
return sprintf "%04d-%02d-%02d", (1900, 1, -1) >>+<< (localtime $_[0])[5,4,3];
A+,
Marsh Posté le 17-04-2008 à 14:26:45
c'est bien un truc de perfectionniste lol
c'est cool, vous assurez.
Marsh Posté le 17-04-2008 à 12:09:42
salut tout le monde et merci de vous attardez sur mon cas.
j'ai un petit soucis avec mon mini code.
Dans mon premier cas:
sub time2str ($) {
my $time = shift;
my @t = (localtime $time)[0..5];
return sprintf '%d-%d-%d', $t[5]+1900, $t[4]+1,$t[3]-1;
}
$date = time2str( time );
$date =~ s/-(\d)-/-0$1-/;
la date s'affichera comme ceci lorsque les jours seront inférieurs à 10:
"2008-04-9"
Dans mon autre cas:
sub time2str ($) {
my $time = shift;
my @t = (localtime $time)[0..5];
return sprintf '%d-%d-%d', $t[5]+1900, $t[4]+1,$t[3]-1;
}
$date = time2str( time );
$date =~ s/-(\d)-(\d)/-0$1-0$2/;
la date s'affichera comme ceci lorsque les jours seront isupérieurs à 10:
"2008-04-016"
ce que je cherche a obtenir est une date du type: 2008-04-06 et 2008-11-30
le problème est que je dois passer à coté d'un truc mais je ne vois pas quoi.
merci de m'aider à résoudre mon problème.
Message édité par warzoo le 17-04-2008 à 12:10:47