Merge branch 'master' of rvb.name:weathermon
[weathermon.git] / web / calendar.php
1 <?php
2
3 function calendar($year,$month, $days, $ref_template, $font_size) {
4
5   $firstday = mktime(0,0,0,$month,1,$year);
6   $dayofmonth = date('t',$firstday);
7
8   $day_count = 1;
9
10   $num = 0;
11
12   for($i = 0; $i < 7; $i++) {
13
14     $dayofweek = date('w', mktime(0, 0, 0, $month, $day_count, $year));
15     $dayofweek = $dayofweek - 1;
16     if($dayofweek == -1) $dayofweek = 6;
17
18     if($dayofweek == $i) {
19
20       $week[$num][$i] = $day_count;
21       $day_count++;
22
23     } else {
24
25       $week[$num][$i] = "";
26
27     }
28   }
29
30
31   while(true) {
32
33     $num++;
34
35     for($i = 0; $i < 7; $i++) {
36
37       $week[$num][$i] = $day_count;
38       $day_count++;
39
40       if($day_count > $dayofmonth) break;
41
42     }
43
44     if($day_count > $dayofmonth) break;
45
46   }
47
48   echo '<table align="center" border=1>';
49
50   for($i = 0; $i < count($week); $i++) {
51
52     echo '<tr>';
53
54     for($j = 0; $j < 7; $j++) {
55
56       if(!empty($week[$i][$j])) {
57         $str = $week[$i][$j];
58         $fstr='<font size="+'.$font_size.'">'.$str.'</font>';
59         if (!empty($days[$year.$month.sprintf('%02d',$str)])) { 
60           $href=sprintf($ref_template,$days[$year.$month.sprintf('%02d',$str)]); 
61           if($j == 5 || $j == 6) {
62             echo '<td align="right" bgcolor="mediumaquamarine"><a href='.$href.'><font color=red>'.$fstr.'</font></a></td>';
63           } else { 
64             echo '<td align="right" bgcolor="mediumaquamarine"><a href='.$href.'>'.$fstr.'</a></td>';
65           }
66         } else {
67           if($j == 5 || $j == 6) {
68             echo '<td align="right"><font color=red>'.$fstr.'</font></td>';
69           } else { 
70             echo '<td align="right">'.$fstr.'</td>';
71           }
72         }
73       }
74
75       else echo '<td>&nbsp;</td>';
76
77     }
78
79     echo '</tr>';
80
81   } 
82
83   echo '</table>';
84
85 }
86
87 ?>