parent
							
								
									dcf1a1a5e7
								
							
						
					
					
						commit
						bd2ce7c4e4
					
				
				 1 changed files with 56 additions and 0 deletions
			
			
		| @ -0,0 +1,56 @@ | ||||
| <?php | ||||
| // read vor.txt and generate vor.md, inserting dates if missing | ||||
| // Helper function for next Tuesday calculation depending on PHP version | ||||
| function getTuesday($ts) { | ||||
|     // This is for PHP >= 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); | ||||
| ?> | ||||
| 
 | ||||
					Loading…
					
					
				
		Reference in new issue