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

Probleme de calendrier.

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

5 réponses

Avatar
Paul Gaborit
À (at) Tue, 04 Sep 2007 09:57:20 +0200,
Frantz écrivait (wrote):
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 - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
espie
In article ,
Paul Gaborit <Paul.Gaborit+ wrote:

À (at) Tue, 04 Sep 2007 09:57:20 +0200,
Frantz écrivait (wrote):
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...


Avatar
jl_morel
Dans l'article <46dd1361$0$18560$,
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

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

À (at) Tue, 04 Sep 2007 09:57:20 +0200,
Frantz écrivait (wrote):
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 - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>



Avatar
Frantz
Dans l'article <46dd1361$0$18560$,
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