--TEST-- Bug #9568: Date_Calc::beginOfMonthBySpan() and Date_Calc::endOfMonthBySpan() - December was always shifted up one year --FILE-- beginOfMonthBySpan(-$months, $month, $year, '%d.%m.%Y'); $date_ex = explode('.', $date); $out = sprintf('%d - %s.%s.%s', $months, $date_ex[0], $date_ex[1], $date_ex[2]); if ($date_ex[1] == 12) { $out .= ' **'; } echo $out . "\n"; } echo "\n"; $out = ''; for ($months = 1; $months <= $sequence; $months++) { $date = $DateCalc->endOfMonthBySpan(-$months, $month, $year, '%d.%m.%Y'); $date_ex = explode('.', $date); $out = sprintf('%d - %s.%s.%s', $months, $date_ex[0], $date_ex[1], $date_ex[2]); if ($date_ex[1] == 12) { $out .= ' **'; } echo $out . "\n"; } ?> --EXPECT-- 1 - 01.12.2005 ** 2 - 01.11.2005 3 - 01.10.2005 4 - 01.09.2005 5 - 01.08.2005 6 - 01.07.2005 7 - 01.06.2005 8 - 01.05.2005 9 - 01.04.2005 10 - 01.03.2005 11 - 01.02.2005 12 - 01.01.2005 13 - 01.12.2004 ** 14 - 01.11.2004 15 - 01.10.2004 16 - 01.09.2004 17 - 01.08.2004 18 - 01.07.2004 19 - 01.06.2004 20 - 01.05.2004 21 - 01.04.2004 22 - 01.03.2004 23 - 01.02.2004 24 - 01.01.2004 25 - 01.12.2003 ** 1 - 31.12.2005 ** 2 - 30.11.2005 3 - 31.10.2005 4 - 30.09.2005 5 - 31.08.2005 6 - 31.07.2005 7 - 30.06.2005 8 - 31.05.2005 9 - 30.04.2005 10 - 31.03.2005 11 - 28.02.2005 12 - 31.01.2005 13 - 31.12.2004 ** 14 - 30.11.2004 15 - 31.10.2004 16 - 30.09.2004 17 - 31.08.2004 18 - 31.07.2004 19 - 30.06.2004 20 - 31.05.2004 21 - 30.04.2004 22 - 31.03.2004 23 - 29.02.2004 24 - 31.01.2004 25 - 31.12.2003 **