RE: [PEAR-DEV] fix fo Bug #19788 (Date_Calc::weekOfYear() function problem)
| From: | Kai Schröder | Date: | Wed, 27 Nov 2002 08:48:22 +0000 |
| Subject: | RE: [PEAR-DEV] fix fo Bug #19788 (Date_Calc::weekOfYear() function problem) | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-11154@lists.php.net to get a copy of this message | ||
> Could you post a unified (diff -u), please, it is more readable.
> Arnaud.
I hope that's the requested (WinCVS doesn't know diff -u):
Index: Calc.php
===================================================================
RCS file: /repository/pear/Date/Date/Calc.php,v
retrieving revision 1.4
diff -u -r1.4 Calc.php
--- Calc.php 20 Nov 2002 16:43:12 -0000 1.4
+++ Calc.php 27 Nov 2002 08:45:24 -0000
@@ -233,13 +233,17 @@
$day = Date_Calc::dateNow("%d");
}
- $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;
+
return $week_number;
} // end func weekOfYear