1 | <?php |
---|
2 | /** |
---|
3 | * Description: a complete year with numeric week numbers |
---|
4 | */ |
---|
5 | function getmicrotime(){ |
---|
6 | list($usec, $sec) = explode(" ",microtime()); |
---|
7 | return ((float)$usec + (float)$sec); |
---|
8 | } |
---|
9 | $start = getmicrotime(); |
---|
10 | |
---|
11 | if (!@include 'Calendar/Calendar.php') { |
---|
12 | define('CALENDAR_ROOT', '../../'); |
---|
13 | } |
---|
14 | |
---|
15 | require_once CALENDAR_ROOT.'Year.php'; |
---|
16 | require_once CALENDAR_ROOT.'Month/Weeks.php'; |
---|
17 | |
---|
18 | define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKS); |
---|
19 | |
---|
20 | if (!isset($_GET['year'])) $_GET['year'] = date('Y'); |
---|
21 | |
---|
22 | $week_types = array( |
---|
23 | 'n_in_year', |
---|
24 | 'n_in_month', |
---|
25 | ); |
---|
26 | |
---|
27 | if (!isset($_GET['week_type']) || !in_array($_GET['week_type'],$week_types) ) { |
---|
28 | $_GET['week_type'] = 'n_in_year'; |
---|
29 | } |
---|
30 | |
---|
31 | $Year = new Calendar_Year($_GET['year']); |
---|
32 | |
---|
33 | $Year->build(); |
---|
34 | ?> |
---|
35 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
---|
36 | <html> |
---|
37 | <head> |
---|
38 | <title> <?php echo $Year->thisYear(); ?> </title> |
---|
39 | <style type="text/css"> |
---|
40 | body { |
---|
41 | font-family: Georgia, serif; |
---|
42 | } |
---|
43 | caption.year { |
---|
44 | font-weight: bold; |
---|
45 | font-size: 120%; |
---|
46 | font-color: navy; |
---|
47 | } |
---|
48 | caption.month { |
---|
49 | font-size: 110%; |
---|
50 | font-color: navy; |
---|
51 | } |
---|
52 | table.month { |
---|
53 | border: thin groove #800080 |
---|
54 | } |
---|
55 | tr { |
---|
56 | vertical-align: top; |
---|
57 | } |
---|
58 | th, td { |
---|
59 | text-align: right; |
---|
60 | font-size: 70%; |
---|
61 | } |
---|
62 | #prev { |
---|
63 | float: left; |
---|
64 | font-size: 70%; |
---|
65 | } |
---|
66 | #next { |
---|
67 | float: right; |
---|
68 | font-size: 70%; |
---|
69 | } |
---|
70 | #week_type { |
---|
71 | float: none; |
---|
72 | font-size: 70%; |
---|
73 | } |
---|
74 | .weekNumbers { |
---|
75 | background-color: #e5e5f5; |
---|
76 | padding-right: 3pt; |
---|
77 | } |
---|
78 | </style> |
---|
79 | </head> |
---|
80 | <body> |
---|
81 | <table> |
---|
82 | <caption class="year"> |
---|
83 | <?php echo $Year->thisYear(); ?> |
---|
84 | <div id="next"> |
---|
85 | <a href="?year=<?php echo $Year->nextYear(); ?>&week_type=<?php echo $_GET['week_type']; ?>">>></a> |
---|
86 | </div> |
---|
87 | <div id="prev"> |
---|
88 | <a href="?year=<?php echo $Year->prevYear(); ?>&week_type=<?php echo $_GET['week_type']; ?>"><<</a> |
---|
89 | </div> |
---|
90 | <div id="week_type"> |
---|
91 | <a href="?year=<?php echo $Year->thisYear(); ?>&week_type=n_in_year">Weeks by Year</a> : |
---|
92 | <a href="?year=<?php echo $Year->thisYear(); ?>&week_type=n_in_month">Weeks by Month</a> |
---|
93 | </div> |
---|
94 | </caption> |
---|
95 | <?php |
---|
96 | $i = 0; |
---|
97 | while ($Month = $Year->fetch()) { |
---|
98 | |
---|
99 | switch ($i) { |
---|
100 | case 0: |
---|
101 | echo "<tr>\n"; |
---|
102 | break; |
---|
103 | case 3: |
---|
104 | case 6: |
---|
105 | case 9: |
---|
106 | echo "</tr>\n<tr>\n"; |
---|
107 | break; |
---|
108 | case 12: |
---|
109 | echo "</tr>\n"; |
---|
110 | break; |
---|
111 | } |
---|
112 | |
---|
113 | echo "<td>\n<table class=\"month\">\n"; |
---|
114 | echo '<caption class="month">'.date('F', $Month->thisMonth(TRUE)).'</caption>'; |
---|
115 | echo '<colgroup><col class="weekNumbers"><col span="7"></colgroup>'."\n"; |
---|
116 | echo "<tr>\n<th>Week</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th>\n</tr>"; |
---|
117 | $Month->build(); |
---|
118 | while ($Week = $Month->fetch()) { |
---|
119 | echo "<tr>\n"; |
---|
120 | echo '<td>'.$Week->thisWeek($_GET['week_type'])."</td>\n"; |
---|
121 | $Week->build(); |
---|
122 | |
---|
123 | while ($Day = $Week->fetch()) { |
---|
124 | if ($Day->isEmpty()) { |
---|
125 | echo "<td> </td>\n"; |
---|
126 | } else { |
---|
127 | echo "<td>".$Day->thisDay()."</td>\n"; |
---|
128 | } |
---|
129 | } |
---|
130 | } |
---|
131 | echo "</table>\n</td>\n"; |
---|
132 | |
---|
133 | $i++; |
---|
134 | } |
---|
135 | ?> |
---|
136 | </table> |
---|
137 | <p>Took: <?php echo ((getmicrotime()-$start)); ?></p> |
---|
138 | </body> |
---|
139 | </html> |
---|