Date-Convert-French_Rev
view release on metacpan or search on metacpan
eg/labels_fr view on Meta::CPAN
# along with this program; if not, write to the Free Software Foundation,
# Inc., <https://www.fsf.org/>.
#
#
# Le hachage des libellés
#
use utf8;
use strict;
use warnings;
my %labels =
( calendar => 'Calendrier'
, month3 => [ qw(jan fév mars avr mai juin juil août sep oct nov déc) ]
, week1 => [ qw(L M M J V S D) ]
, add_days => 'Jours complémentaires'
, month => [ qw(Janvier Février Mars Avril Mai Juin Juillet Août Septembre
Octobre Novembre Décembre) ]
, title1 => "Lettres pour une année"
, title2 => { b => "Début d'année", m => "Milieu d'année", e => "Fin d'année" }
, title3 => "Nom des mois et des jours"
, year_ttl => "Année"
, titleg2r => "Conversion de dates du calendrier grégorien vers le calendrier républicain"
, titler2g => "Conversion de dates du calendrier républicain vers le calendrier grégorien"
);
#
# Formattage spécifique de la date grégorienne
# note : on n'utilise pas le quatrième paramètre d'appel.
#
$labels{format} = sub {
my ($a, $m, $j) = @_;
"$j $labels{month}[$m-1] $a"
};
#
# Mode d'emploi, Grégorien -> Républicain
#
$labels{usage1} = <<'EOT';
<h3>Comment convertir $gr_date</h3>
<p>Regardez d'abord la première table. L'année grégorienne
<strong>$y</strong>
se trouve dans l'intervalle
<em>$begint - $end_of_interval{$begint}</em>
et elle se termine par les deux chiffres
<strong>$y2</strong>.
Dans la ligne et la colonne correspondantes, la case contient les trois lettres
<em>$word</em>.
<p>Regardez ensuite les trois tables suivantes.
<strong>$labels{month}[$m-1]</strong>
apparaît dans la table
<em>$labels{title2}{$part}</em>
qui comporte en en-tête la mention
<em>$labels{year_ttl} - $offset</em>.
Vous pouvez donc en déduire tout de suite l'année républicaine, qui est
<strong>$ryear</strong>.
Parmi ces trois lettres
<em>$word</em>,
la lettre
<em>$letter</em>
est celle qui apparaît dans la même table. La case correspondante contient les deux formules :
<em>@formulas</em>.
Choisissez celle qui convertit le jour
<strong>$d</strong>
en un nombre de 1 Ã 30. C'est-Ã -dire, jusqu'Ã
<strong>$limit $labels{month}[$m - 1]</strong>
inclus, utilisez la première formule
<em>$formulas[0]</em>,
et ultérieurement, utilisez la deuxième formule
<em>$formulas[1]</em>.
Dans le cas présent, le numéro du jour grégorien est
<strong>$d</strong>,
donc vous appliquez la formule
<em>$formula</em>,
et vous obtenez
<strong>$abridged</strong>.
Il ne reste plus qu'à extraire le nom du jour et le nom du mois de la dernière table, ce qui donne
<strong>$rev_date</strong>.
EOT
$labels{usage2} = <<'EOT';
<h3>Comment convertir $gr_date</h3>
<p>Qu'en est-il de septembre ? La première étape est identique, et donne
les trois mêmes lettres
<em>$word</em>.
<p>Mais
<strong>$labels{month}[8]</strong>
figure à la fois dans la table
<em>$labels{title2}{m}</em>
et dans la table
<em>$labels{title2}{e}</em>.
La première donne deux formules pour le jour :
<em>$formulas[0]</em>
et
<em>$formulas[1]</em>,
(colonne
<em>$mletter</em>),
ainsi que
<em>$labels{year_ttl} - 1792</em>
pour l'année. L'autre donne
<em>$formulas[2]</em>
pour le jour
(colonne
<em>$eletter</em>),
et
<em>$labels{year_ttl} - 1791</em>
pour l'année.
<p>Essayez d'abord la dernière formule
<em>$formulas[2]</em>,
puis la précédente
<em>$formulas[1]</em>,
et enfin la première
<em>$formulas[0]</em>,
jusqu'à obtenir un résultat supérieur ou égal à 1.
<p>Dans le cas de
<strong>$d $labels{month}[8] $y</strong>,
il faut appliquer
<em>$formula</em>,
ainsi que la formule correspondante pour l'année
<em>$labels{year_ttl} - $offset</em>,
ce qui donne
<strong>$abridged</strong>,
ou mieux,
<strong>$rev_date</strong>.
EOT
#
# Mode d'emploi pour la conversion du calendrier révolutionnaire
# vers le calendrier grégorien.
#
$labels{usage3} = <<'EOT';
<h3>Comment convertir $title_date</h3>
<p>Commencez par la première table. L'année du calendrier révolutionnaire,
<strong>$y</strong>
se trouve dans l'intervalle
<em>$begint - $end_of_interval{$begint}</em>
et ses deux derniers chiffres sont
<em>$y2</em>.
Dans la ligne et la colonne correspondantes, vous trouvez les deux lettres
<em>$word</em>.
<p>Et maintenant, reportez-vous aux deux autres tables. Le mois
<strong>$fr_month[$m-1]</strong>
figure dans la table
<em>$labels{title2}{$part}</em>.
Des deux lettres
<em>$word</em>,
c'est
<em>$letter</em>
qui apparaît dans cette table. La case correspondante comporte deux formules :
<em>@formulas</em>.
Choisissez celle qui vous permet de convertir le numéro de jour
<strong>$d</strong>
et d'obtenir une valeur compatible avec le mois grégorien résultant.
C'est-Ã -dire, jusqu'au
<strong>$limit $fr_month[$m - 1]</strong>,
inclus, utilisez la première formule
<em>$formulas[0]</em>,
et ensuite, utilisez l'autre formule
<em>$formulas[1]</em>.
Dans le cas présent, le numéro du jour républicain est
<strong>$d</strong>,
donc vous utilisez la formule
<em>$formula</em>,
ce qui donne
<strong>$gr_date</strong>.
EOT
$labels{usage4} = <<'EOT';
<h3>Cas particuliers</h3>
<p>Pour les
<strong>$labels{add_days}</strong>,
il y a une seule formule, ce qui est beaucoup plus simple.
<p>Pour
<strong>$fr_month[3]</strong>,
la case se scinde en deux, car il y a deux formules pour l'année,
<em>$labels{year_ttl} + 1791</em>
et
<em>$labels{year_ttl} + 1792</em>.
<p><strong>$fr_month[5]</strong>
se trouve dans les deux tables. Pour
<strong>$fr_month[5] $y</strong>,
dans la colonne
<em>$bletter</em>
vous obtenez la formule
<em>$formulas[0]</em>,
et dans la colonne
<em>$eletter</em>
vous obtenez la formule
<em>$formulas[1]</em>.
à part cela, tout le reste est identique. C'est-à -dire, jusqu'au
<strong>$limit $fr_month[5]</strong>
inclus, utilisez la première formule
<em>$formulas[0]</em>,
et ensuite, utilisez la formule
<em>$formulas[1]</em>.
Par exemple, si vous voulez convertir
<strong>$title_date</strong>,
étant donné que le numéro du jour républicain est
<strong>$d</strong>,
vous devrez utiliser la formule
<em>$formula</em>,
et vous obtiendrez
<strong>$gr_date</strong>.
EOT
%main::labels = %labels;
__END__
=encoding utf8
=head1 NOM
prt_cal - Imprime le calendrier républicain pour une date.
g2r_table - Imprime des tables permettant la conversion du calendrier
grégorien vers le calendrier républicain.
r2g_table - Imprime des tables permettant la conversion du calendrier
républicain vers le calendrier grégorien.
=head1 RÃSUMÃ DE C<prt_cal>
prt_cal [--lang=I<langue>] [--kitten=I<fichier>] année
=head1 DESCRIPTION DE C<prt_cal>
B<prt_cal> imprime le calendrier républicain pour l'année transmise en
paramètre. Vous pouvez demander le calendrier pour n'importe quelle
année après la proclamation de la Première République, vous n'êtes pas
limités à la période pendant laquelle le calendrier a réellement été
utilisé. Par exemple, vous pouvez demander le calendrier pour l'année
210, ce qui correspond dans le calendrier grégorien à fin 2001 et
début 2002. La sortie obtenue est un fichier HTML codé en UTF-8. Le
fichier comporte de brèves indications permettant de trouver la
correspondance avec le calendrier grégorien.
=head1 OPTIONS DE C<prt_cal>
=over 4
=item lang
Elle permet de sélectionner une langue pour certaines valeurs :
abréviation des jours de la semaine, ou des mois, et mode
d'emploi. Les langues disponibles sont :
=over 4
=item en
Anglais (valeur par défaut)
=item fr
Français
=back
=item kitten
( run in 1.186 second using v1.01-cache-2.11-cpan-39bf76dae61 )