--- /dev/null
+<?php
+if (empty($Args)) {
+ return;
+}
+@list ($target, $interval) = explode('+', ltrim($Args, '/'));
+$target = new DateTime($target);
+$now = new DateTime('NOW');
+$next = $target->diff($now); # age
+
+if ($interval) {
+ # recurring
+ $interval = new DateInterval('P'.$interval);
+ for ($attempt = 0; $attempt < 500; $attempt++) {
+ if ($next->invert) {
+ break; # past or today
+ }
+ $target->add($interval);
+ $next = $target->diff($now);
+ }
+}
+$next = $target->setTime(0, 0)->diff($now); # truncate to midnight
+$eta = $next->invert ? $next->days + 1 : -$next->days;
+
+if ($eta == 0) {
+ print 'vandaag';
+}
+elseif ($eta == 1) {
+ print 'morgen';
+}
+elseif ($eta == 2) {
+ print 'overmorgen';
+}
+elseif ($eta == -1) {
+ print 'gisteren';
+}
+elseif ($eta < 0) {
+ printf('%d dagen geleden', -$eta);
+}
+else {
+ printf('over %d dagen', $eta);
+}
+
+if ($interval) {
+ print ', ' . showdate(explode('-', $target->format('Y-m-d')));
+}
--- /dev/null
+<?php
+$cal = [];
+foreach (glob("$Page$Args/2*") as $url) {
+ $parts = pathinfo($url);
+ @list ($date, $suffix) = explode('.', $parts['filename'], 2);
+ $cal[$date][ $suffix ? '' : @$parts['extension'] ] =
+ preg_replace('/\.html$/', '', $url);
+}
+
+print '<ul';
+if (count($cal) > 5) print ' class="cols"';
+print ">\n";
+foreach (array_reverse($cal) as $title => $versions) {
+ print '<li>';
+ if ($url = @$versions['html']) {
+ printf('<a href="/%s">%s</a>', $url, $title);
+ }
+ elseif (implode('', array_keys($versions))) {
+ list ($format, $url) = each($versions);
+ include_once('format.inc.php');
+ printf('%s (<a href="/%s">%sB %s</a>)',
+ $title, $url, showsize(filesize($url)), $format
+ );
+ }
+ else {
+ print $title;
+ }
+ print "\n";
+}
+print "</ul>\n\n";
+