docs
[mirrors/Programs.git] / php / pcal.php
CommitLineData
38a87dc6
H
1<title>PeriodiCalendar</Title>
2<h1>PeriodiCal</h1>
3<small>Calendar with period highlighting ability</small>
4<?php if(!isset($_GET['last'])) { ?>
5<form action="?" method="GET">
6 Last: <input type="text" name="last" value="2010-01-20" title="YYYY-MM-DD date of last occurence" />
7 Periodicity: <input type="text" name="period" value="28" title="Periodicity of cycle in days" />
8 Duration: <input type="text" name="len" value="7" title="Days to highlight from beginning of cycle" />
9 Months: <input type="text" name="months" value="12" title="How many months you want to draw" />
10 <input type="submit" value="DRAW" />
11</form>
12
13<?php
14 echo("\n<!-- OPEN SOURCE:\n");readfile(__FILE__);echo("\n-".'->');
15} else {
16//init
17error_reporting(0);
18$day = 60*60*24;
19//get numbers
20$now = time(); $now = mktime(12, 0, 0, date('n',$now), 1, date('Y',$now));
21$last = date_parse_from_format('Y-m-d', $_GET['last']);
22$last = mktime(12, 0, 0, $last['month'], $last['day'], $last['year']);
23$period=28; if(isset($_GET['period'])) $period = $_GET['period'];
24$length=7; if(isset($_GET['len'])) $length = $_GET['len'];
25$months=12; if(isset($_GET['months'])) $months = $_GET['months'];
26
27echo('<table border=1>');
28$r = 0;
29for($i=0;$i<$months;$i++) {
30 $lm = $m = date('m',$now);
31 $mo = date('M',$now);
32 echo("<tr><td bgcolor='lightblue'><b>$m ($mo)</b></td>");
33 while($m == $lm) {
34 if(round(($now-$last)/$day)%($period) == 0) $r = $length;
35 $c = '';
36 if($r>0) $c = '#FF0000';
37 if($r==1 || $r==$length) $c = '#FF7777';
38 $r--;
39 echo("<td bgcolor='$c'>".date('d', $now).'</td>');
40 $now += $day;
41 $m = date('m',$now);
42 }
43 echo('</tr>');
44}
45echo('</table><small>You can bookmark this page it will get updated automatically each month.</small>');
46}
This page took 0.201465 seconds and 4 git commands to generate.