Calendrier simple avec affichage automatique en rouge des jours fériés

Soyez le premier à donner votre avis sur cette source.

Vue 33 268 fois - Téléchargée 1 841 fois

Description

Bonjour, ceci est un calendrier simple facilement paramétrable et affichant les jours fériés automatiquement, même ceux qui varient ! ;)
C'est ma toute première source donc soyez indulgent ;p

Pour tout problème contacter moi : burak77420@live.fr !

Cordialement,
Burak.

Source / Exemple :


<?php
/* By Burak (burak77420@live.fr) */
?><html>

<head>

<title>Calendrier</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<font face="Trebuchet MS" lang="fr">
</head>
<body bgcolor="#336699" align="center"><form method="POST" action="">

Mois : <select name="month">

<option value="1">Janvier</option>

<option value="2">Février</option>

<option value="3">Mars</option>

<option value="4">Avril</option>

<option value="5">Mai</option>

<option value="6">Juin</option>

<option value="7">Juillet</option>

<option value="8">Aout</option>

<option value="9">Septembre</option>

<option value="10">Octobre</option>

<option value="11">Novembre</option>

<option value="12">Décembre</option>

</select><br/>Année : <select name="year">

<option value="2028">2028</option><option value="2027">2027</option><option value="2026">2026</option><option value="2025">2025</option><option value="2024">2024</option><option value="2023">2023</option><option value="2022">2022</option><option value="2021">2021</option><option value="2020">2020</option><option value="2019">2019</option><option value="2018">2018</option><option value="2017">2017</option><option value="2016">2016</option><option value="2015">2015</option><option value="2014">2014</option><option value="2013">2013</option><option value="2012">2012</option><option value="2011">2011</option><option value="2010">2010</option><option value="2009">2009</option><option value="2008">2008</option><option value="2007">2007</option><option value="2006">2006</option><option value="2005">2005</option><option value="2004">2004</option><option value="2003">2003</option><option value="2002">2002</option><option value="2001">2001</option><option value="2000">2000</option><option value="1999">1999</option><option value="1998">1998</option><option value="1997">1997</option><option value="1996">1996</option><option value="1995">1995</option><option value="1994">1994</option><option value="1993">1993</option><option value="1992">1992</option><option value="1991">1991</option><option value="1990">1990</option><option value="1989">1989</option><option value="1988">1988</option><option value="1987">1987</option><option value="1986">1986</option><option value="1985">1985</option><option value="1984">1984</option><option value="1983">1983</option><option value="1982">1982</option><option value="1981">1981</option><option value="1980">1980</option><option value="1979">1979</option><option value="1978">1978</option><option value="1977">1977</option><option value="1976">1976</option><option value="1975">1975</option><option value="1974">1974</option><option value="1973">1973</option><option value="1972">1972</option><option value="1971">1971</option><option value="1970">1970</option><option value="1969">1969</option><option value="1968">1968</option><option value="1967">1967</option><option value="1966">1966</option><option value="1965">1965</option><option value="1964">1964</option><option value="1963">1963</option><option value="1962">1962</option><option value="1961">1961</option><option value="1960">1960</option><option value="1959">1959</option><option value="1958">1958</option><option value="1957">1957</option><option value="1956">1956</option><option value="1955">1955</option><option value="1954">1954</option><option value="1953">1953</option><option value="1952">1952</option><option value="1951">1951</option><option value="1950">1950</option><option value="1949">1949</option><option value="1948">1948</option><option value="1947">1947</option><option value="1946">1946</option><option value="1945">1945</option><option value="1944">1944</option><option value="1943">1943</option><option value="1942">1942</option><option value="1941">1941</option><option value="1940">1940</option><option value="1939">1939</option><option value="1938">1938</option><option value="1937">1937</option><option value="1936">1936</option><option value="1935">1935</option><option value="1934">1934</option><option value="1933">1933</option><option value="1932">1932</option><option value="1931">1931</option><option value="1930">1930</option><option value="1929">1929</option><option value="1928">1928</option><option value="1927">1927</option><option value="1926">1926</option><option value="1925">1925</option><option value="1924">1924</option><option value="1923">1923</option><option value="1922">1922</option><option value="1921">1921</option><option value="1920">1920</option><option value="1919">1919</option><option value="1918">1918</option><option value="1917">1917</option><option value="1916">1916</option><option value="1915">1915</option><option value="1914">1914</option><option value="1913">1913</option><option value="1912">1912</option><option value="1911">1911</option><option value="1910">1910</option><option value="1909">1909</option><option value="1908">1908</option><option value="1907">1907</option><option value="1906">1906</option><option value="1905">1905</option><option value="1904">1904</option><option value="1903">1903</option><option value="1902">1902</option><option value="1901">1901</option><option value="1900">1900</option><option value="1899">1899</option><option value="1898">1898</option><option value="1897">1897</option><option value="1896">1896</option><option value="1895">1895</option><option value="1894">1894</option><option value="1893">1893</option><option value="1892">1892</option><option value="1891">1891</option><option value="1890">1890</option><option value="1889">1889</option><option value="1888">1888</option><option value="1887">1887</option><option value="1886">1886</option><option value="1885">1885</option><option value="1884">1884</option><option value="1883">1883</option><option value="1882">1882</option><option value="1881">1881</option><option value="1880">1880</option><option value="1879">1879</option><option value="1878">1878</option><option value="1877">1877</option><option value="1876">1876</option><option value="1875">1875</option><option value="1874">1874</option><option value="1873">1873</option><option value="1872">1872</option><option value="1871">1871</option><option value="1870">1870</option><option value="1869">1869</option><option value="1868">1868</option><option value="1867">1867</option><option value="1866">1866</option><option value="1865">1865</option><option value="1864">1864</option><option value="1863">1863</option><option value="1862">1862</option><option value="1861">1861</option><option value="1860">1860</option><option value="1859">1859</option><option value="1858">1858</option><option value="1857">1857</option><option value="1856">1856</option><option value="1855">1855</option><option value="1854">1854</option><option value="1853">1853</option><option value="1852">1852</option><option value="1851">1851</option><option value="1850">1850</option><option value="1849">1849</option><option value="1848">1848</option><option value="1847">1847</option><option value="1846">1846</option><option value="1845">1845</option><option value="1844">1844</option><option value="1843">1843</option><option value="1842">1842</option><option value="1841">1841</option><option value="1840">1840</option><option value="1839">1839</option><option value="1838">1838</option><option value="1837">1837</option><option value="1836">1836</option><option value="1835">1835</option><option value="1834">1834</option><option value="1833">1833</option><option value="1832">1832</option><option value="1831">1831</option><option value="1830">1830</option><option value="1829">1829</option><option value="1828">1828</option><option value="1827">1827</option><option value="1826">1826</option><option value="1825">1825</option><option value="1824">1824</option><option value="1823">1823</option><option value="1822">1822</option><option value="1821">1821</option><option value="1820">1820</option><option value="1819">1819</option><option value="1818">1818</option><option value="1817">1817</option><option value="1816">1816</option><option value="1815">1815</option><option value="1814">1814</option><option value="1813">1813</option><option value="1812">1812</option><option value="1811">1811</option><option value="1810">1810</option><option value="1809">1809</option><option value="1808">1808</option><option value="1807">1807</option><option value="1806">1806</option><option value="1805">1805</option><option value="1804">1804</option><option value="1803">1803</option><option value="1802">1802</option><option value="1801">1801</option></select><br/>

<input type="submit" value="Confirmer">

</form>
<?php
	function getSecond($valeur) {
		return substr($valeur, 17, 2);
	}
 
	function getMinute($valeur) {
		return substr($valeur, 14, 2);
	}
 
	function getHour($valeur) {
		return substr($valeur, 11, 2);
	}
 
	function getDay($valeur)	{
		return substr($valeur, 8, 2);
	}
 
	function getMonth($valeur)	{
		return substr($valeur, 5, 2);
	}
 
	function getYear($valeur) {
		return substr($valeur, 0, 4);
	}
 
	function monthNumToName($mois) {
		$tableau = Array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aôut", "Septembre", "Octobre", "Novembre", "Décembre");
		return (intval($mois) > 0 && intval($mois) < 13) ? $tableau[intval($mois)] : "Indéfini";
	}
function showCalendar($periode,$time) {
		$leCalendrier = "";
		$tableau = Array("0", "1", "2", "3", "4", "5", "6", "0");
		$nb_jour = Date("t", mktime(0, 0, 0, getMonth($periode), 1, getYear($periode)));
		$pas = 0;
		$indexe = 1;
		$leCalendrier .= "\n\t<h2>» " . monthNumToName(getMonth($periode)) . " " . getYear($periode) . '</h2><table width="400" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#330066" bgcolor="#FFFFFF">';
		$leCalendrier .= "
		<tr <tr align=\"center\" bgcolor=\"#99CCFF\">
			\t<td>L</td>
			\t<td>M</td>
			\t<td>M</td>
			\t<td>J</td>
			\t<td>V</td>
			\t<td>S</td>
			\t<td>D</td>
		</tr>";
		$jour_debut_mois=strftime("%w",$time-($nb_jour-1)*24*3600);
		$i = 1;
		while ($pas < $nb_jour) {
		$i++;
			if ($indexe == 1) $leCalendrier .= "\n\t<tr align=\"center\">";
			if (Date("w", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))) == $tableau[$indexe]) {
				$afficheJour = Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode)));
				/*if (Date("Y-m-d", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode))) == Date("Y-m-d")) {
				}*/
				// else {
					if (1) {
						$afficheJour = Date("j", mktime(0, 0, 0, getMonth($periode), 1 + $pas, getYear($periode)));
					}
					else {
					}
				// }
				if ($indexe >= 6){
					$class = ' style="background-color: #FF0000;"';
				}else{
					$class = "";
				}
				
				Switch(getMonth($periode)){
					case 1:
						if($afficheJour == 1){
							$class = ' style="background-color: #FF0000;"';
						}
					break;
					case 5:
						if($afficheJour == 1 OR $afficheJour == 8){
							$class = ' style="background-color: #FF0000;"';
						}
					break;
					case 7:
						if($afficheJour == 14){
							$class = ' style="background-color: #FF0000;"';
						}
					break;
					case 8:
						if($afficheJour == 15){
							$class = ' style="background-color: #FF0000;"';
						}
					break;
					case 11:
						if($afficheJour == 1 OR $afficheJour == 11){
							$class = ' style="background-color: #FF0000;"';
						}
					break;
					case 12:
						if($afficheJour == 25){
							$class = ' style="background-color: #FF0000;"';
						}
					break;
				}
				$paquej = date("d", easter_date(getYear($periode))+86400);
				$paquem = date("m", easter_date(getYear($periode))+86400);
				if($paquem == getMonth($periode)){
					if($paquej == $afficheJour){
						$class = ' style="background-color: #FF0000;"';
					}
				}
				$ascensionj = date("d", easter_date(getYear($periode))+86400*39);
				$ascensionm = date("m", easter_date(getYear($periode))+86400*39);
				if($ascensionm == getMonth($periode)){
					if($ascensionj == $afficheJour){
						$class = ' style="background-color: #FF0000;"';
					}
				}
				$pentecotej = date("d", easter_date(getYear($periode))+86400*50);
				$pentecotem = date("m", easter_date(getYear($periode))+86400*50);
				if($pentecotem == getMonth($periode)){
					if($pentecotej == $afficheJour){
						$class = ' style="background-color: #FF0000;"';
					}
				}
				$leCalendrier .= "\n\t\t<td$class>$afficheJour</td>";
				$pas++;
			}
			else {
				$leCalendrier .= "\n\t\t<td>&nbsp;</td>";
			}
			if ($indexe == 7 && $pas < $nb_jour) { $leCalendrier .= "\n\t</tr>"; $indexe = 1;} else {$indexe++;}
		}
		for ($i = $indexe; $i <= 7; $i++) {
			$leCalendrier .= "\n\t\t<td>&nbsp;</td>";
		}
		$leCalendrier .= "\n\t</tr>\n";
		return $leCalendrier;
	}
	extract($_POST);
	if(@$month && $year){
	echo showCalendar($year."-".$month, mktime(0, 0, 0, $month, -2, $year));
	}else{
	echo showCalendar(date("Y-m"), time());
	}
	echo "</table></body></html>";
?>

Conclusion :


Pour en conclure, ce script est assez basique, à vous de le modifier comme vous voulez.

En espérant poster des nouvelles source très prochainement :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
6
Date d'inscription
dimanche 29 juin 2008
Statut
Membre
Dernière intervention
12 juin 2012

Salut, merci de ta réponse ;)

J'en prend note et je ferait une mise à jour du code :)

Ceci étant ma première source je sais qu'elle est loin d'être parfaite.

Cordialement.
Messages postés
14
Date d'inscription
mercredi 27 octobre 2010
Statut
Membre
Dernière intervention
27 mai 2013

Salut,
ta source est intéressante mais ça serait plus sympa si tu arrivait à en faire un objet.
Le principe de déposer des source (amha) c'est qu'elle puissent être réutilisé. Et réutiliser du procédurale c'est quand beaucoup plus pénible. Et PHP est un langage objet depuis un moment maintenant...
sinon enlève le style de la source et fait une css.
Bonne continuation.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.