Probleme de calendrier.

Le
Frantz
Bonjour à tous, je cherche une fonction qui pourai me dire si
aujourd'hui par exemple je suis le 1er lundi du mois ou le 2eme mercredi
du mois etc


Frantz

dorsemaine.frantz@free.fr
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
Paul Gaborit
Le #149424
À (at) Tue, 04 Sep 2007 09:57:20 +0200,
Frantz
Bonjour à tous, je cherche une fonction qui pourai me dire si
aujourd'hui par exemple je suis le 1er lundi du mois ou le 2eme
mercredi du mois etc...


Avce le module DateTime par exemple :

use DateTime;

my $n = DateTime->now;
$n->set_locale("fr"); # pour du francais
print $n->weekday_of_month, "n";
print $n->day_name, "n";

--
Paul Gaborit - Perl en français -
espie
Le #149423
In article Paul Gaborit

À (at) Tue, 04 Sep 2007 09:57:20 +0200,
Frantz
Bonjour à tous, je cherche une fonction qui pourai me dire si
aujourd'hui par exemple je suis le 1er lundi du mois ou le 2eme
mercredi du mois etc...


Avce le module DateTime par exemple :

use DateTime;

my $n = DateTime->now;
$n->set_locale("fr"); # pour du francais
print $n->weekday_of_month, "n";
print $n->day_name, "n";


Une reference que j'adore:

http://www.phys.uu.nl/~vgent/calendar/isocalendar.htm


Attention au fait que certains logiciels sont buggues et ne respectent PAS
ISO8601 (pas mal de versions de mailers et de tableurs repandus, comme Excel
et Outlook), donc ne pas se baser sur de tels logiciels pour s'assurer de
la correction de DateTime...


jl_morel
Le #149324
Dans l'article a dit...

Bonjour à tous, je cherche une fonction qui pourai me dire si
aujourd'hui par exemple je suis le 1er lundi du mois ou le 2eme mercredi
du mois etc...



D'après la recette n°6 de Date::Calc :
http://search.cpan.org/~stbey/Date-Calc-5.4/Calc.pod#6
(si j'ai bien compris la question) :

Renvoie :
Le Mardi 4 septembre 2007 est le 1-er Mardi du mois de septembre 2007.


#!/usr/bin/perl
use strict;
use warnings;
use Date::Calc
qw( Decode_Language Language Today Day_of_Week
Delta_Days Nth_Weekday_of_Month_Year Date_to_Text_Long
Day_of_Week_to_Text Month_to_Text
);

Language( Decode_Language('Français') );

my ( $year, $month, $day ) = Today();

my $dow = Day_of_Week( $year, $month, $day );

my $n = int(
Delta_Days( Nth_Weekday_of_Month_Year( $year, $month, $dow, 1 ),
$year, $month, $day ) / 7
) + 1;

printf(
"Le %s est le %s %s du mois de %s %d.n",
Date_to_Text_Long( $year, $month, $day ),
$n == 1 ? '1-er' : $n . '-ieme',
Day_of_Week_to_Text($dow),
Month_to_Text($month), $year
);

__END__

HTH

--
J-L.M.
http://www.bribes.org/perl

Paul Gaborit
Le #149323
À (at) Tue, 4 Sep 2007 10:30:14 +0000 (UTC),
(Marc Espie) écrivait (wrote):
In article Paul Gaborit

À (at) Tue, 04 Sep 2007 09:57:20 +0200,
Frantz
Bonjour à tous, je cherche une fonction qui pourai me dire si
aujourd'hui par exemple je suis le 1er lundi du mois ou le 2eme
mercredi du mois etc...


Avce le module DateTime par exemple :

use DateTime;

my $n = DateTime->now;
$n->set_locale("fr"); # pour du francais
print $n->weekday_of_month, "n";
print $n->day_name, "n";


Une reference que j'adore:

http://www.phys.uu.nl/~vgent/calendar/isocalendar.htm


Attention au fait que certains logiciels sont buggues et ne respectent PAS
ISO8601 (pas mal de versions de mailers et de tableurs repandus, comme Excel
et Outlook), donc ne pas se baser sur de tels logiciels pour s'assurer de
la correction de DateTime...


Certes. Mais là on ne parle pas du numéro de la semaine dans l'année
ni du premier jour de la semaine (ce dont parle, entre autres, la
norme ISO8601).

On chercher le nombre de fois où un même jour de la semaine est déjà
apparu dans le mois courant. Il n'y a pas d'ambiguïté possible et la
réponse fournie par DateTime est correcte sauf si on remonte avant le
mois de novembre 1582...

--
Paul Gaborit - Perl en français -


Frantz
Le #149322
Dans l'article a dit...
Bonjour à tous, je cherche une fonction qui pourai me dire si
aujourd'hui par exemple je suis le 1er lundi du mois ou le 2eme mercredi
du mois etc...



D'après la recette n°6 de Date::Calc :
http://search.cpan.org/~stbey/Date-Calc-5.4/Calc.pod#6
(si j'ai bien compris la question) :

Renvoie :
Le Mardi 4 septembre 2007 est le 1-er Mardi du mois de septembre 2007.


#!/usr/bin/perl
use strict;
use warnings;
use Date::Calc
qw( Decode_Language Language Today Day_of_Week
Delta_Days Nth_Weekday_of_Month_Year Date_to_Text_Long
Day_of_Week_to_Text Month_to_Text
);

Language( Decode_Language('Français') );

my ( $year, $month, $day ) = Today();

my $dow = Day_of_Week( $year, $month, $day );

my $n = int(
Delta_Days( Nth_Weekday_of_Month_Year( $year, $month, $dow, 1 ),
$year, $month, $day ) / 7
) + 1;

printf(
"Le %s est le %s %s du mois de %s %d.n",
Date_to_Text_Long( $year, $month, $day ),
$n == 1 ? '1-er' : $n . '-ieme',
Day_of_Week_to_Text($dow),
Month_to_Text($month), $year
);

__END__

HTH

Merci c'est juste se qu'il me falais.


Codialement Frantz


Publicité
Poster une réponse
Anonyme