A voir également:
- [Perl] Comparer deux dates
- Deux ecran pc - Guide
- Deux comptes whatsapp - Guide
- Itinéraire google map entre deux adresses - Guide
- Faire deux colonnes sur word - Guide
- Calcul nombre de nuits entre deux dates excel ✓ - Forum Excel
24 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 569
10 déc. 2007 à 21:05
10 déc. 2007 à 21:05
Salut,
voici un petit exemple qui pourra peut être t'aider
voici un petit exemple qui pourra peut être t'aider
#!/usr/bin/perl use strict;use warnings; use Date::Manip; use Date::Calc qw(Delta_Days); my $date1 = "Sep 10 12:25:32 2010"; my $date2 = "Dec 10 20:57:32 2007"; my $d1 = ParseDate($date1); my $d2 = ParseDate($date2); my ($a1,$m1,$j1,$H1,$M1,$S1) = UnixDate($d1,"%Y","%m","%d","%H","%M","%S"); print "$a1,$m1,$j1,$H1,$M1,$S1\n"; my ($a2,$m2,$j2,$H2,$M2,$S2) = UnixDate($d2,"%Y","%m","%d","%H","%M","%S"); print "$a2,$m2,$j2,$H2,$M2,$S2\n"; my @d1 = UnixDate($d1,"%Y","%m","%d"); print "@d1\n"; my @d2 = UnixDate($d2,"%Y","%m","%d"); print "@d2\n"; my $diff = Delta_Days(@d2,@d1); print "$diff jours entre @d2 et @d1\n";
En fait c'est pas inférieur à 2 mois mais plutot à 2ans, enfin je ne pense pas que ca change grd chose !
marc[i1]
Messages postés
2573
Date d'inscription
vendredi 1 avril 2005
Statut
Contributeur
Dernière intervention
6 septembre 2008
382
10 déc. 2007 à 18:20
10 déc. 2007 à 18:20
Salut,
google me propose cette réponse :
http://datetime.mongueurs.net/Perl/faq.html#2_5_Comment_comparer_deux_dates
google me propose cette réponse :
http://datetime.mongueurs.net/Perl/faq.html#2_5_Comment_comparer_deux_dates
Je l'ai lu mainte et mainte fois, mais des choses m'echappe, deja faut-il installer le Date::Time dont il parle ?
Et ensuite, mes dates sont deja créer et contenu dans des variable pas Datetime si j'ai bien compris, va y'avoir un probleme de format ou qqch du genre, bref, si qqun pouver me donner un bout de code ca m'aiderai ^^
Et ensuite, mes dates sont deja créer et contenu dans des variable pas Datetime si j'ai bien compris, va y'avoir un probleme de format ou qqch du genre, bref, si qqun pouver me donner un bout de code ca m'aiderai ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Coucou, et merci pour vos reponse, j'ai essayer de comprendre ton code tout d'abord, il y avait qq erreur, que je pense avoir trouver
(; apres quote a remplacer par une virgule et aussi la " avant %S), en tout cas je te remerci, j'ai aussi installer Date::Manip ainsi que Date::Calc
Mais il me reste quelque erreur:
[root@XXXXX]# perl test.pl
Sep 5 12:59:36 2010 => ma $date1
Dec 11 15:48:33 2007 => ma $date2
date passed in ('2010090512:59:36') is not a Date::Manip object at test.pl line 27
Aparemment la ligne 27 pose probleme au moment du ParseDate,
Qqun aurait il une idée?
Si vous avez besoin de plus de détails n'hesitez pas !
Et encore merci lami20j !
(; apres quote a remplacer par une virgule et aussi la " avant %S), en tout cas je te remerci, j'ai aussi installer Date::Manip ainsi que Date::Calc
Mais il me reste quelque erreur:
[root@XXXXX]# perl test.pl
Sep 5 12:59:36 2010 => ma $date1
Dec 11 15:48:33 2007 => ma $date2
date passed in ('2010090512:59:36') is not a Date::Manip object at test.pl line 27
Aparemment la ligne 27 pose probleme au moment du ParseDate,
Qqun aurait il une idée?
Si vous avez besoin de plus de détails n'hesitez pas !
Et encore merci lami20j !
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 569
11 déc. 2007 à 16:32
11 déc. 2007 à 16:32
Salut,
En fait il n'avait pas des erreurs dans mon code ;-) sauf que je viens de remarquer que les guillements ont été traduite en code HTML
Donc c'est la faute de CCM ;-DDDDDDDDDDDD
Qqun aurait il une idée?
Oui, si tu m'affiche ton script ;-)
En fait il n'avait pas des erreurs dans mon code ;-) sauf que je viens de remarquer que les guillements ont été traduite en code HTML
Donc c'est la faute de CCM ;-DDDDDDDDDDDD
Qqun aurait il une idée?
Oui, si tu m'affiche ton script ;-)
Re,
Et bien, avec ton code, j'ai la meme erreur, toujours au niveau du ParseDate,
Meme avec la fonction que j'ai trouvé dans le manuel de Date::Manip => my $d3 = ParseDate("today");
toujours pareil :
date passed in ('2007121209:02:38') is not a Date::Manip object at test2.pl line 10
Comment le declarer en Date::Manip object ?
Merci pour vos reponses !
Et bien, avec ton code, j'ai la meme erreur, toujours au niveau du ParseDate,
Meme avec la fonction que j'ai trouvé dans le manuel de Date::Manip => my $d3 = ParseDate("today");
toujours pareil :
date passed in ('2007121209:02:38') is not a Date::Manip object at test2.pl line 10
Comment le declarer en Date::Manip object ?
Merci pour vos reponses !
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 569
12 déc. 2007 à 10:53
12 déc. 2007 à 10:53
Salut,
j'aimerais bien voir ton code, pas le mien qui fonctionne.
si tu ne me donne plus de détails alors je ne peux rien pour toi.
j'aimerais bien voir ton code, pas le mien qui fonctionne.
si tu ne me donne plus de détails alors je ne peux rien pour toi.
Salut,
Et bien ecoute c'est ton code qui ne marche pas chez moi, (et le mien aussi par la meme occasion, et avec la meme erreur),
J'ai copier coller ton code dans un fichier .pl, changer le ";" apres le quot par une virgule et j'ai rajouter un guillemet avant le %S pour eviter les erreur de syntaxe.
Et quand je l'execute :
date passed in ('2010091012:25:32') is not a Date::Manip object at test2.pl line 9
Cela ne viendrai peut etre pas du code alors?
Merci
Et bien ecoute c'est ton code qui ne marche pas chez moi, (et le mien aussi par la meme occasion, et avec la meme erreur),
J'ai copier coller ton code dans un fichier .pl, changer le ";" apres le quot par une virgule et j'ai rajouter un guillemet avant le %S pour eviter les erreur de syntaxe.
Et quand je l'execute :
date passed in ('2010091012:25:32') is not a Date::Manip object at test2.pl line 9
Cela ne viendrai peut etre pas du code alors?
Merci
marc[i1]
Messages postés
2573
Date d'inscription
vendredi 1 avril 2005
Statut
Contributeur
Dernière intervention
6 septembre 2008
382
12 déc. 2007 à 11:21
12 déc. 2007 à 11:21
Je pense que tu devrais afficher la ligne contenant l'erreur, soit la ligne 9 de ton script. (met les lignes de 7 à 12 par exemple)
Une erreur de guillemet peut causer bien des maux de têtes ;)
Une erreur de guillemet peut causer bien des maux de têtes ;)
Le script figure juste au dessus, c'est celui de lami20j,
la ligne 9 est donc =>
J'ai lu la doc de Date::Manip, et j'ai chercher dans le code de Manip.pm :
voila aparemment la fonction qu'il n'arrive pas a réaliser :
Je l'ai chercher par rapport au message d'erreur et je n'ai aucune idée d'où ca peut venir.
Merci pour vos reponses
la ligne 9 est donc =>
my $d1 = ParseDate($date1);
J'ai lu la doc de Date::Manip, et j'ai chercher dans le code de Manip.pm :
voila aparemment la fonction qu'il n'arrive pas a réaliser :
sub Date_ConvTZ { print "DEBUG: Date_ConvTZ\n" if ($Curr{"Debug"} =~ /trace/); my($date,$from,$to,$level)=@_; if (not Date_Split($date)) { my $err = "date passed in ('$date') is not a Date::Manip object"; if (! $level) { croak $err; } elsif ($level==1) { carp $err; } return ""; }
Je l'ai chercher par rapport au message d'erreur et je n'ai aucune idée d'où ca peut venir.
Merci pour vos reponses
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 569
12 déc. 2007 à 12:22
12 déc. 2007 à 12:22
Ben, justement, ce que j'ai besoin c'est ton script, en fait la partie qui contient $date1
Et attention à ton test qui est fait sur Date_Split et pas sur Date::Manip
if (not Date_Split($date)) {
my $err = "date passed in ('$date') is not a Date::Manip object";
c'est quoi Date_Split?
affiche le script complet pas seulement la fonction.
Et attention à ton test qui est fait sur Date_Split et pas sur Date::Manip
if (not Date_Split($date)) {
my $err = "date passed in ('$date') is not a Date::Manip object";
c'est quoi Date_Split?
affiche le script complet pas seulement la fonction.
Le code que je t'ai mis au dessus, c'est la fonction de Manip.pm qu'il n'arrive pas realiser avec le ParseDate de ton code(et du mien), c'est peut etre pas utile, mais ca pourrai aider qqun a comprendre pourquoi il m'affiche cette erreur.
Sinon si tu veux mon script le voila :
Je n'ai pas continuer sachant qu'il m'affiche deja une erreur
Enfin le mien ou le tiens de code ca ne change rien, il met l'erreur dans les 2 au meme moment, celui du ParseDate
Et encore merci pour ta patience !
Sinon si tu veux mon script le voila :
#!/usr/bin/perl5.8.0 use strict;use warnings; use Date::Manip; use Date::Calc qw(Delta_Days); my $date1 = `openssl x509 -in XXXX.crt -enddate -noout`; $date1=~s/notAfter=//; $date1=~s/GMT//; my $date2 = localtime(time); $date2 =~s/Mon//; $date2 =~s/Tue//; $date2 =~s/Wed//; $date2 =~s/Thu//; $date2 =~s/Fri//; $date2 =~s/Sat//; $date2 =~s/Sun//; $date2 =~s/^[ \t]+//; my $d1 = ParseDate($date1); my $d2 = ParseDate($date2); my ($a1,$m1,$j1,$H1,$M1,$S1) = UnixDate($d1,"%Y","%m","%d","%H","%M",","%S"); print "$a1,$m1,$j1,$H1,$M1,$S1"; print "\n";
Je n'ai pas continuer sachant qu'il m'affiche deja une erreur
Enfin le mien ou le tiens de code ca ne change rien, il met l'erreur dans les 2 au meme moment, celui du ParseDate
Et encore merci pour ta patience !
Et meme en essayant un code aussi simple que ca :
Il me met toujours la meme erreur :
date passed in ('2010091012:25:32') is not a Date::Manip object at test3.pl line 7
Pour bien te montrer que peut importe $date1, c'est le ParseDate qui pose problème
#!/usr/bin/perl use strict;use warnings; use Date::Manip; my $date1 = "Sep 10 12:25:32 2010"; my $d1 = ParseDate($date1);
Il me met toujours la meme erreur :
date passed in ('2010091012:25:32') is not a Date::Manip object at test3.pl line 7
Pour bien te montrer que peut importe $date1, c'est le ParseDate qui pose problème
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 569
12 déc. 2007 à 12:44
12 déc. 2007 à 12:44
Bon, je vois que tu veux tenir ton code secret.
Je teste ton code et il n'y a pas d'erreur
Je teste ton code et il n'y a pas d'erreur
lami20j@debserv:~/trash$ cat ccm.pl #!/usr/bin/perl # use strict;use warnings; use Date::Manip; # my $date1 = "Sep 10 12:25:32 2010"; my $d1 = ParseDate($date1); print "$d1\n"; lami20j@debserv:~/trash$ perl ccm.pl 2010091012:25:32donc l'erreur viens peut être du traitement apprès Date::Manip
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 569
12 déc. 2007 à 12:48
12 déc. 2007 à 12:48
affiche aussi
perl -MDate::Manip -e 'print "$Date::Manip::VERSION\n"'pour voir si on a la même version de Date::Manip
Mon code n'es pas secret et je te l'ai afficher au dessus, je choppe $d1 avec la commande openssl, c'est en faite la date de fin d'un certificat.
J'ai la version 5.48, aparemment la derniere que j'ai telecharger sur le site CPAN
Je pense juste que l'erreur ne vient pas du code, sachant que chez toi ca marche et pas chez moi, ce que je comprend pas c'est pourquoi ?
J'ai la version 5.48, aparemment la derniere que j'ai telecharger sur le site CPAN
Je pense juste que l'erreur ne vient pas du code, sachant que chez toi ca marche et pas chez moi, ce que je comprend pas c'est pourquoi ?
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 569
12 déc. 2007 à 13:08
12 déc. 2007 à 13:08
Alors, affiche le résultat de
#!/usr/bin/perl use strict;use warnings; my $dd; my $d = "Sep 10 12:25:32 2010"; print "$d\n"; print $dd if ($dd =$d)=~s/(.)/ord($1)/eg; print "\n";mais que la source de récupération de ta variable ne change pas
Je comprends pas ton code mais je l'ai executer en esperant que ca puisse aider a resoudre le probleme :D
Ca m'affiche comme résultat :
[admin@XXXX]$ perl test3.pl
Sep 10 12:25:32 2010
831011123249483249505850535851503250484948
Ca m'affiche comme résultat :
[admin@XXXX]$ perl test3.pl
Sep 10 12:25:32 2010
831011123249483249505850535851503250484948
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 569
12 déc. 2007 à 13:30
12 déc. 2007 à 13:30
J'ai la version 5.48, aparemment la derniere que j'ai telecharger sur le site CPAN
bon, moi j'ai la version 5.44,
je vais télécharger la version 5.48 pour tester chez moi
bon, moi j'ai la version 5.44,
je vais télécharger la version 5.48 pour tester chez moi
10 déc. 2007 à 22:57
Joli !!!
Perl ......c'est beau !
Perl ......c'est bien !
:-))