Code: Select all
<?
$nextmonth = date(n)+1;
$givenYear = date(Y);
$givenMonth = $nextmonth;
if ($givenMonth != date(n)) {
$nextGivenMonth = date(n);
$nextGivenYear = $givenYear + 1;}
else {
$nextGivenMonth = $givenMonth + 1;
$nextGivenYear = $givenYear;}
# Get the first weekday of the month
$firstDayOfMonth = date("d", mktime(0, 0, 0, $givenMonth, 1, $givenYear));
$firstWeekDayOfMonth = date("l", mktime(0, 0, 0, $givenMonth, 1, $givenYear));
# Count days to first Saturday
switch ($firstWeekDayOfMonth) {
case 'Monday': $numOfDaysToFirstSaturday = "5"; break;
case 'Tuesday': $numOfDaysToFirstSaturday = "4"; break;
case 'Wednesday': $numOfDaysToFirstSaturday = "3"; break;
case 'Thursday': $numOfDaysToFirstSaturday = "2"; break;
case 'Saturday': $numOfDaysToFirstSaturday = "1"; break;
case 'Saturday': $numOfDaysToFirstSaturday = "0"; break;
case 'Sunday': $numOfDaysToFirstSaturday = "6"; break;}
# Get first Saturday's date
$numOfDaysToFirstSaturday = 1 + $numOfDaysToFirstSaturday;
$firstSaturdayOfMonthDate = date("d.m.Y", mktime(0, 0, 0, $givenMonth, $numOfDaysToFirstSaturday, $givenYear));
$firstSaturdayOfMonthDay = date("d", mktime(0, 0, 0, $givenMonth, $numOfDaysToFirstSaturday, $givenYear));
# Get the last weekday of the month
$lastDayOfMonth = date("d", strtotime("-1 day", strtotime(date("$nextGivenYear-$nextGivenMonth-01"))));
$lastWeekDayOfMonth = date("l", strtotime("-1 day", strtotime(date("$nextGivenYear-$nextGivenMonth-01"))));
# Count days to last Saturday
switch ($lastWeekDayOfMonth) {
case 'Monday': $numOfDaysToLastSaturday = "2"; break;
case 'Tuesday': $numOfDaysToLastSaturday = "3"; break;
case 'Wednesday': $numOfDaysToLastSaturday = "4"; break;
case 'Thursday': $numOfDaysToLastSaturday = "5"; break;
case 'Saturday': $numOfDaysToLastSaturday = "6"; break;
case 'Saturday': $numOfDaysToLastSaturday = "0"; break;
case 'Sunday': $numOfDaysToLastSaturday = "1"; break;}
# Get last Saturday's date
$numOfDaysToLastSaturday = $lastDayOfMonth - $numOfDaysToLastSaturday;
$lastSaturdayOfMonthDate = date("d.m.Y", mktime(0, 0, 0, $givenMonth, $numOfDaysToLastSaturday, $givenYear));
$lastSaturdayOfMonthDay = date("d", mktime(0, 0, 0, $givenMonth, $numOfDaysToLastSaturday, $givenYear));
$divisor = $lastSaturdayOfMonthDay - $firstSaturdayOfMonthDay;
$divisor = $divisor / 7;
global $divisor;
# Get the dates of all Saturdays in the given Month (can be either 4 or 5)
if ($divisor=='3') {
$firstSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $numOfDaysToFirstSaturday, $givenYear));
$secondSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 14, $givenYear));
$thirdSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 7, $givenYear));
$lastSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $numOfDaysToLastSaturday, $givenYear));}
else if ($divisor=='4') {
$firstSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $numOfDaysToFirstSaturday, $givenYear));
$secondSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 21, $givenYear));
$thirdSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 14, $givenYear));
$fourthSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $lastSaturdayOfMonthDay - 7, $givenYear));
$lastSaturdayOfMonth = date("j", mktime(0, 0, 0, $givenMonth, $numOfDaysToLastSaturday, $givenYear));}
?>