Révision 5ea6d54c

b/index.php
1
<?php
2
	setlocale(LC_ALL, 'fr_FR');
3
	$lstJours = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
4
	$lstMois = array(1 => "janvier", "f&eacute;vrier", "mars", "avril", "mai", "juin", "juillet", "ao&ucirc;t", "septembre", "octobre", "novembre", "d&eacute;cembre");
5
	$lstFeries = array(
6
		"jourDeLAn" => array(1, 1, "jour de l'an"),
7
		"rameaux" => array(0, 0, "les Rameaux"),
8
		"paques" => array(0, 0, "P&acirc;ques"),
9
		"lundiDePaques" => array(0, 0, "lundi de P&acirc;ques"),
10
		"feteDuTravail" => array(1, 5, "f&ecirc;te du travail"),
11
		"victoire1945" => array(8, 5, "victoire 1945"),
12
		"ascension" => array(15, 8, "l'Ascension"),
13
		"pentecote" => array(0, 0, "la Pentec&ocirc;te"),
14
		"lundiDePentecote" => array(0, 0, "lundi de Pentec&ocirc;te"),
15
		"feteNationale" => array(14, 7, "f&ecirc;te Nationale"),
16
		"assomption" => array(15, 8, "l'Assomption"),
17
		"toussaint" => array(1, 11, "la Toussaint"),
18
		"armistice1918" => array(11, 11, "armistice 1918"),
19
		"noel" => array(25, 12, "No&euml;l")
20
	);
21

  
22
	function getPaquesDay($year) {
23
		$b = $year-1900;
24
		$c = $year % 19;
25
		$d = (7*$c+1)/19;
26
		$e = (11*$c+4-$d) % 29;
27
		$f = $b/4;
28
		$g = ($b+$f+31-$e) % 7;
29
		$h = 25-$e-$g;
30
		if ($h > 0) {
31
			$jour = $h;
32
			$mois = 4;
33
		} else {
34
			$jour = $h+31;
35
			$mois = 3;
36
		}
37
		return array($jour, $mois);
38
	}
39

  
40
	$year = date("Y");
41
	if (isset($_GET['year'])) $year = $_GET['year'];
42
	if (isset($_GET['annee'])) $year = $_GET['annee'];
43

  
44
	list($jourPaques, $moisPaques) = getPaquesDay($year);
45
	$datePaques = strtotime("$year-$moisPaques-$jourPaques");
46
	$lstFeries['paques'][0] = $jourPaques;
47
	$lstFeries['paques'][1] = $moisPaques;
48
	$ts = strtotime("-7 days", $datePaques);
49
	$lstFeries['rameaux'][0] = date("j", $ts);
50
	$lstFeries['rameaux'][1] = date("n", $ts);
51
	$ts = strtotime("1 day", $datePaques);
52
	$lstFeries['lundiDePaques'][0] = date("j", $ts);
53
	$lstFeries['lundiDePaques'][1] = date("n", $ts);
54
	$ts = strtotime("39 days", $datePaques);
55
	$lstFeries['ascension'][0] = date("j", $ts);
56
	$lstFeries['ascension'][1] = date("n", $ts);
57
	$ts = strtotime("49 days", $datePaques);
58
	$lstFeries['pentecote'][0] = date("j", $ts);
59
	$lstFeries['pentecote'][1] = date("n", $ts);
60
	$ts = strtotime("50 days", $datePaques);
61
	$lstFeries['lundiDePentecote'][0] = date("j", $ts);
62
	$lstFeries['lundiDePentecote'][1] = date("n", $ts);
63
?>
64
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
65
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
66
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
67
	<head>
68
		<meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-1"  />
69
		<meta http-equiv="Content-style-type" content="text/css" />
70
		<meta http-equiv="Content-language" content="fr" />
71
		<title>Calendrier <?=$year?></title>
72
		<link rel="stylesheet" type="text/css" href="calendrier.css" media="screen" title="Normal" />
73
		<link rel="stylesheet" type="text/css" href="calendrier.css" media="print" title="Normal" />
74

  
75
	</head>
76

  
77
	<body>
78
<?php
79
	for ($s = 1; $s <= 2; $s++) {
80
		print "\t\t<table>\n";
81
		for ($j = 0; $j <= 31; $j++) {
82
			if ($j == 0) {
83
				echo "\t\t\t<tr id=\"semestre$s\">\n";
84
			} else {
85
				echo "\t\t\t<tr class=\"jour$j\">\n";
86
			}
87
			for ($m = 6*$s-5; $m <= 6*$s; $m++) {
88
				if ($j == 0) {
89
					echo "\t\t\t\t<th id=\"mois$m\">".$lstMois[$m]."</th>\n";
90
					$lastDay = 29;
91
					while (checkdate($m, $lastDay, $year)) $lastDay++;
92
					$last[$m] = $lastDay-1;
93
				} else {
94
					$ts = strtotime("$year-$m-$j");
95
					$weekDay = $lstJours[date("w", $ts)];
96
					$abrvDay = strftime("%a", $ts);
97
					if ($j <= $last[$m]) {
98
						$classFerie = "";
99
						foreach ($lstFeries as $id => $f) {
100
							if ($j == $f[0] && $m == $f[1]) {
101
								$classFerie = " class=\"ferie\" class=\"$id\" title=\"".$f[2]."\"";
102
								break;
103
							}
104
						}
105
						echo "\t\t\t\t<td$classFerie class=\"$weekDay\"><span class=\"nom-jour\">$abrvDay</span><span class=\"num-jour\">$j</span></td>\n";
106
					} else {
107
						if ($last[$m] == 30) {
108
							echo "\t\t\t\t<td></td>\n";
109
						} else {
110
							if ($j == $last[$m]+1) echo "\t\t\t\t<td rowspan=\"".(31-$last[$m])."\"></td>\n";
111
						}
112
					}
113
				}
114
			}
115
			echo "\t\t\t</tr>\n";
116
		}
117
		print "\t\t</table>\n";
118
		print "\t\t<br />\n";
119
	}
120
?>
121
	</body>
122
</html>

Formats disponibles : Unified diff