diff --git a/gen_vor.php b/gen_vor.php new file mode 100644 index 0000000..4e5a7e0 --- /dev/null +++ b/gen_vor.php @@ -0,0 +1,56 @@ += 8.1 as the old strftime will be deprecated by then, so use datefmt_format_object if we are running on PHP beyond version 7 + if (intval(explode(".", phpversion())[0]) >= 7) { + $date_time = new DateTime(); + $date_time->setTimestamp(strtotime('fourth tuesday of this month', $ts)); + $tuesday = datefmt_format_object($date_time, 'cccc, d.M.yyyy ', 'de_DE.utf8'); + } else { + $tuesday = strftime('%A, %d.%m.%Y ', strtotime('fourth tuesday of this month', $ts)); + } + return $tuesday; +} + +date_default_timezone_set("CET"); +setlocale(LC_TIME, 'de_DE.utf8'); +$file_txt = 'vor.txt'; +$file_md = 'vor.md'; +$fil = file($file_txt, FILE_IGNORE_NEW_LINES); +// Insert header +$arr = ['| | | |', '|:------|:------|:------|']; +$ts=(new DateTime('first day of this month'))->getTimeStamp(); +$tues_ts = strtotime('fourth tuesday of this month', $ts); + +// Are we past the fourth Tuesday of this month? +if ((new DateTime())->getTimeStamp() >= $tues_ts) { + $ts = strtotime('+1 month', $ts); +} + +foreach ($fil as $line) { + // Skip empty lines + if (strlen($line)) { + // Remove empty fields too + $fields = array_filter(explode('|', $line)); + // Get next Tuesday independent of PHP version + $tuesday = getTuesday($ts); + if (count($fields) == 2) { + // Date missing, insert + array_unshift($fields, $tuesday); + } + $ts = strtotime('+1 month', $ts); + $li = implode('|', $fields); + // Insert leading and trailing spaces if required + if ($li[0] != ' ') { + $li = ' ' . $li; + } + if (substr($li, -1) != ' ') { + $li = $li . ' '; + } + array_push($arr, '|' . $li . '|'); + } +} +file_put_contents($file_md, implode(PHP_EOL, $arr) . PHP_EOL); +?> +