Files
doc-fr/reference/calendar/functions/easter-date.xml
2021-09-24 04:13:47 +01:00

206 lines
6.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 789af834328bf5d492ed174a4fedb226ccaf4b27 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.easter-date" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>easter_date</refname>
<refpurpose>Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>easter_date</methodname>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>year</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer><constant>CAL_EASTER_DEFAULT</constant></initializer></methodparam>
</methodsynopsis>
<para>
Retourne un timestamp UNIX pour Pâques, à minuit, pour une année donnée.
</para>
<warning>
<para>
Cette fonction génère une alerte si la date tombe hors de
la zone de validité des horodatages UNIX (c'est à dire typiquement avant
1970 ou après 2037 sur les systèmes 32bit).
</para>
</warning>
<para>
La date de Pâques a été fixée par le concile
de Nicée, en 325 de notre ère, comme étant le dimanche
après la première pleine lune qui suit l'équinoxe de
printemps. L'équinoxe de printemps est considéré
comme étant toujours le 21 mars, ce qui réduit le
problème au calcul de la date de la lune pleine qui suit, et le
dimanche suivant. L'algorithme fut introduit vers 532, par Dionysius
Exiguus. Avec le calendrier Julien, (pour les années avant 1753),
un cycle de 19 ans suffit pour connaître les dates des phases de la
lune. Avec le calendrier grégorien, (à partir des années
1753, conçu par Clavius et Lilius, puis introduit par le pape Grégoire XIII
en octobre 1582, et en Grande Bretagne et ses colonies en septembre 1752),
deux facteurs de corrections ont été ajoutés pour rendre
le cycle plus précis.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>year</parameter></term>
<listitem>
<para>
L'année, sous la forme d'un nombre compris entre
1970 et 2037. Si omis ou &null;, la valeur par défaut sera l'année
courante suivant l'heure locale.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Permet de calculer la date de Pâques en fonction du calendrier de Julien
quand définit à <constant>CAL_EASTER_ALWAYS_JULIAN</constant>. Voir aussi
<link linkend="calendar.constants">les constantes de calendrier</link>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
La date pour Pâques, sous la forme d'un timestamp unix.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>year</parameter> est désormais nullable.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>easter_date</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo date("M-d-Y", easter_date(1999)); // Apr-04-1999
echo date("M-d-Y", easter_date(2000)); // Apr-23-2000
echo date("M-d-Y", easter_date(2001)); // Apr-15-2001
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
La fonction <function>easter_date</function> reprose sur les fonctions
de la bibliothèque C time du système, plutôt que sur les fonctions
date et time internes de PHP. Aussi, la fonction <function>easter_date</function>
utilise la variable d'environnement <literal>TZ</literal> pour déterminer
le fuseau horaire à utiliser, plutôt que le
<link linkend="ini.date.timezone">fuseau horaire par défaut</link> de PHP,
ce qui peut conduire à un comportement non désiré lors de l'utilisation
de cette fonction avec d'autres fonctions date de PHP.
</para>
<para>
Comme contournement, vous pouvez utiliser la fonction
<function>easter_days</function> avec les classes
<classname>DateTime</classname> et <classname>DateInterval</classname>
pour calculer le jour de Pâques dans votre fuseau horaire PHP, comme ceci :
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
function get_easter_datetime($year) {
$base = new DateTime("$year-03-21");
$days = easter_days($year);
return $base->add(new DateInterval("P{$days}D"));
}
foreach (range(2012, 2015) as $year) {
printf("Pâques, en %d, tombe le %s\n",
$year,
get_easter_datetime($year)->format('d F'));
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Pâques, en 2012, tombe le 08 Avril
Pâques, en 2013, tombe le 31 Mars
Pâques, en 2014, tombe le 20 Avril
Pâques, en 2015, tombe le 05 Avril
]]>
</screen>
</informalexample>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member>
<function>easter_days</function> pour le calcul de Pâques
avant 1970 et après 2037
</member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->