fix fo Bug #19788 (Date_Calc::weekOfYear() function problem)
| From: | Kai Schröder | Date: | Wed, 27 Nov 2002 08:37:19 +0000 |
| Subject: | fix fo Bug #19788 (Date_Calc::weekOfYear() function problem) | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-11152@lists.php.net to get a copy of this message | ||
related to http://bugs.php.net/bug.php?id=19788
I've found out, that there is a leap year calculation error in
/repository/pear/Date/Date/Calp.php and that's my fix:
Index: Calc.php
===================================================================
RCS file: /repository/pear/Date/Date/Calc.php,v
retrieving revision 1.4
diff -r1.4 Calc.php
236,242c236,246
< $week_year = $year - 1501;
< $week_day = $week_year * 365 + floor($week_year / 4) - 29872 + 1
< - floor($week_year / 100) + floor(($week_year - 300) / 400);
<
< $week_number = ceil((Date_Calc::julianDate($day,$month,$year)
< + floor(($week_day + 4) % 7)) / 7);
<
---
> $days = 0;
> for($this_year = 1501; $this_year < $year; $this_year++) {
> $leap_year = false;
> if ($this_year % 4 == 0) $leap_year = true;
> if ($this_year % 100 == 0) $leap_year = false;
> if ($this_year % 400 == 0) $leap_year = true;
> $days += ($leap_year) ? 366 : 365;
> }
>
> $week_number = ceil((Date_Calc::julianDate($day, $month, $year) -
(($days + 2) % 7))/7) + 1;
>
Please test it again (see test script on
http://bugs.php.net/bug.php?id=19788), commit it
and close the bug.
Regards, Kai
P.S.: I have only doc karma