php generate_ical_week_numbers.php [startyear] [endyear] > week_numbers.ics * Import .ics file into iCal as new Calendar. */ // validate possible parameters $prevdate = 0; for ($i = 1; $i < sizeof($argv); $i++) { if(!checkdate('1','1',$argv[$i])) { fwrite(STDERR, "The parameter $argv[$i] is not a valid year.\n"); exit; } if($argv[$i] < $prevdate) { fwrite(STDERR, "The parameter $argv[$i] must be bigger or equal to $prevdate.\n"); exit; } $prevdate = $argv[$i]; } // grab parameters if we got them, otherwise default to this year if(isset($argv[1])) { $year = $argv[1]; } else { $year = date('Y'); } if(isset($argv[2])) { $endyear = $argv[2]; $yearstring = ${year}."-".${endyear}; } else { $endyear = $year; $yearstring = ${year}; } if(sizeof($argv) == 1) { fwrite(STDERR, "Note: you can specify starting year and ending year as parameters\nto generate week numbers for a longer period like this: \n\n \$> $argv[0] startyear endyear > week_numbers.ics\n\n"); } fwrite(STDERR, "Generating week numbers for the year(s) $yearstring.\n"); // start output header('Content-Type: text/plain'); echo <<