[limb-svn] r5834 - in 3.x/trunk/limb/datetime: src tests/cases

svn at limb-project.com svn at limb-project.com
Tue May 8 16:34:32 MSD 2007


Author: pachanga
Date: 2007-05-08 16:34:32 +0400 (Tue, 08 May 2007)
New Revision: 5834
URL: http://fisheye.limb-project.com/changelog/limb/?cs=5834

Added:
   3.x/trunk/limb/datetime/src/lmbMonth.class.php
   3.x/trunk/limb/datetime/tests/cases/lmbMonthTest.class.php
Removed:
   3.x/trunk/limb/datetime/src/lmbMonthCalendar.class.php
   3.x/trunk/limb/datetime/tests/cases/lmbMonthCalendarTest.class.php
Log:
-- lmbMonthCalendar => lmbMonth

Copied: 3.x/trunk/limb/datetime/src/lmbMonth.class.php (from rev 5832, 3.x/trunk/limb/datetime/src/lmbMonthCalendar.class.php)
===================================================================
--- 3.x/trunk/limb/datetime/src/lmbMonth.class.php	                        (rev 0)
+++ 3.x/trunk/limb/datetime/src/lmbMonth.class.php	2007-05-08 12:34:32 UTC (rev 5834)
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Limb Web Application Framework
+ *
+ * @link http://limb-project.com
+ *
+ * @copyright  Copyright &copy; 2004-2007 BIT
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ * @version    $Id: lmbDate.class.php 5824 2007-05-07 13:44:24Z pachanga $
+ * @package    datetime
+ */
+lmb_require('limb/datetime/src/lmbDate.class.php');
+
+class lmbMonth
+{
+  protected $start_date;
+  protected $end_date;
+
+  function __construct($year, $month)
+  {
+    $tmp_date = new lmbDate(0, 0, 0, 0, $month, $year);
+    $this->start_date = $tmp_date->setDay(1);
+    $this->end_date = $this->start_date->addMonth(1)->addDay(-1);
+  }
+
+  function getStartDate()
+  {
+    return $this->start_date;
+  }
+
+  function getEndDate()
+  {
+    return $this->end_date;
+  }
+
+  function getNumberOfDays()
+  {
+    return $this->end_date->getDay();
+  }
+
+  function getNumberOfWeeks()
+  {
+    $dof = $this->start_date->getDayOfWeek();
+    if(lmbDate :: getFirstDayOfWeek() == 1 && $dof == 0)
+    {
+      $first_week_days = 7 - $dof + lmbDate :: getFirstDayOfWeek();
+      $weeks = 1;
+    }
+    elseif(lmbDate :: getFirstDayOfWeek() == 0 && $dof == 6)
+    {
+      $first_week_days = 7 - $dof + lmbDate :: getFirstDayOfWeek();
+      $weeks = 1;
+    }
+    else
+    {
+      $first_week_days = lmbDate :: getFirstDayOfWeek() - $dof;
+      $weeks = 0;
+    }
+
+    $first_week_days %= 7;
+    return ceil(($this->getNumberOfDays() - $first_week_days) / 7) + $weeks;
+  }
+
+  function getWeek($n)
+  {
+    if($n < 0 || $n > $this->getNumberOfWeeks()-1)
+      return null;
+
+    $week_array = array();
+    $curr_day = ($n * 7) + $this->start_date->getBeginOfWeek()->getDateDays();
+
+    for($i=0;$i<=6;$i++)
+    {
+      $week_array[$i] = lmbDate :: createByDays($curr_day);
+      $curr_day++;
+    }
+    return $week_array;
+  }
+
+  function getAllWeeks()
+  {
+    $weeks = array();
+    for($i = 0; $i < $this->getNumberOfWeeks(); $i++)
+      $weeks[$i] = $this->getWeek($i);
+    return $weeks;
+  }
+
+  function getNextMonth()
+  {
+    $date = $this->end_date->addDay(1);
+    return new lmbMonth($date->getYear(), $date->getMonth());
+  }
+
+  function getPrevMonth()
+  {
+    $date = $this->start_date->addDay(-1);
+    return new lmbMonth($date->getYear(), $date->getMonth());
+  }
+}
+?>
\ No newline at end of file

Deleted: 3.x/trunk/limb/datetime/src/lmbMonthCalendar.class.php
===================================================================
--- 3.x/trunk/limb/datetime/src/lmbMonthCalendar.class.php	2007-05-08 12:33:07 UTC (rev 5833)
+++ 3.x/trunk/limb/datetime/src/lmbMonthCalendar.class.php	2007-05-08 12:34:32 UTC (rev 5834)
@@ -1,100 +0,0 @@
-<?php
-/**
- * Limb Web Application Framework
- *
- * @link http://limb-project.com
- *
- * @copyright  Copyright &copy; 2004-2007 BIT
- * @license    LGPL http://www.gnu.org/copyleft/lesser.html
- * @version    $Id: lmbDate.class.php 5824 2007-05-07 13:44:24Z pachanga $
- * @package    datetime
- */
-lmb_require('limb/datetime/src/lmbDate.class.php');
-
-class lmbMonthCalendar
-{
-  protected $start_date;
-  protected $end_date;
-
-  function __construct($year, $month)
-  {
-    $tmp_date = new lmbDate(0, 0, 0, 0, $month, $year);
-    $this->start_date = $tmp_date->setDay(1);
-    $this->end_date = $this->start_date->addMonth(1)->addDay(-1);
-  }
-
-  function getStartDate()
-  {
-    return $this->start_date;
-  }
-
-  function getEndDate()
-  {
-    return $this->end_date;
-  }
-
-  function getNumberOfDays()
-  {
-    return $this->end_date->getDay();
-  }
-
-  function getNumberOfWeeks()
-  {
-    $dof = $this->start_date->getDayOfWeek();
-    if(lmbDate :: getFirstDayOfWeek() == 1 && $dof == 0)
-    {
-      $first_week_days = 7 - $dof + lmbDate :: getFirstDayOfWeek();
-      $weeks = 1;
-    }
-    elseif(lmbDate :: getFirstDayOfWeek() == 0 && $dof == 6)
-    {
-      $first_week_days = 7 - $dof + lmbDate :: getFirstDayOfWeek();
-      $weeks = 1;
-    }
-    else
-    {
-      $first_week_days = lmbDate :: getFirstDayOfWeek() - $dof;
-      $weeks = 0;
-    }
-
-    $first_week_days %= 7;
-    return ceil(($this->getNumberOfDays() - $first_week_days) / 7) + $weeks;
-  }
-
-  function getWeek($n)
-  {
-    if($n < 0 || $n > $this->getNumberOfWeeks()-1)
-      return null;
-
-    $week_array = array();
-    $curr_day = ($n * 7) + $this->start_date->getBeginOfWeek()->getDateDays();
-
-    for($i=0;$i<=6;$i++)
-    {
-      $week_array[$i] = lmbDate :: createByDays($curr_day);
-      $curr_day++;
-    }
-    return $week_array;
-  }
-
-  function getAllWeeks()
-  {
-    $weeks = array();
-    for($i = 0; $i < $this->getNumberOfWeeks(); $i++)
-      $weeks[$i] = $this->getWeek($i);
-    return $weeks;
-  }
-
-  function getNextMonth()
-  {
-    $date = $this->end_date->addDay(1);
-    return new lmbMonthCalendar($date->getYear(), $date->getMonth());
-  }
-
-  function getPrevMonth()
-  {
-    $date = $this->start_date->addDay(-1);
-    return new lmbMonthCalendar($date->getYear(), $date->getMonth());
-  }
-}
-?>
\ No newline at end of file

Deleted: 3.x/trunk/limb/datetime/tests/cases/lmbMonthCalendarTest.class.php
===================================================================
--- 3.x/trunk/limb/datetime/tests/cases/lmbMonthCalendarTest.class.php	2007-05-08 12:33:07 UTC (rev 5833)
+++ 3.x/trunk/limb/datetime/tests/cases/lmbMonthCalendarTest.class.php	2007-05-08 12:34:32 UTC (rev 5834)
@@ -1,161 +0,0 @@
-<?php
-/**
- * Limb Web Application Framework
- *
- * @link http://limb-project.com
- *
- * @copyright  Copyright &copy; 2004-2007 BIT
- * @license    LGPL http://www.gnu.org/copyleft/lesser.html
- * @version    $Id: lmbDateTest.class.php 5824 2007-05-07 13:44:24Z pachanga $
- * @package    datetime
- */
-lmb_require('limb/datetime/src/lmbMonthCalendar.class.php');
-
-class lmbMonthCalendarTest extends UnitTestCase
-{
-  function testGetBoundaries()
-  {
-    $c = new lmbMonthCalendar(2007, 5);
-    $this->assertEqual(new lmbDate('2007-05-01'), $c->getStartDate());
-    $this->assertEqual(new lmbDate('2007-05-31'), $c->getEndDate());
-  }
-
-  function testGetNumberOfDays()
-  {
-    $c = new lmbMonthCalendar(2007, 5);
-    $this->assertEqual($c->getNumberOfDays(), 31);
-  }
-
-  function testGetNumberOfDaysForLeapYear()
-  {
-    $c1 = new lmbMonthCalendar(2005, 2);
-    $this->assertEqual($c1->getNumberOfDays(), 28);
-
-    $c2 = new lmbMonthCalendar(2004, 2);
-    $this->assertEqual($c2->getNumberOfDays(), 29);
-  }
-
-  function testGetNumberOfWeeks()
-  {
-    $c1 = new lmbMonthCalendar(1999, 2);
-    $this->assertEqual($c1->getNumberOfWeeks(), 4);
-
-    $c2 = new lmbMonthCalendar(2007, 2);
-    $this->assertEqual($c2->getNumberOfWeeks(), 5);
-
-    $c3 = new lmbMonthCalendar(2010, 5);
-    $this->assertEqual($c3->getNumberOfWeeks(), 6);
-  }
-
-  function testGetWeekFailed()
-  {
-    $c = new lmbMonthCalendar(1999, 2);
-    $this->assertNull($c->getWeek(4));
-    $this->assertNull($c->getWeek(10));
-    $this->assertNull($c->getWeek(-1));
-  }
-
-  function testGetIdealWeek()
-  {
-    $c = new lmbMonthCalendar(1999, 2);
-    $week0 = $c->getWeek(0);
-    $week1 = $c->getWeek(1);
-    $week2 = $c->getWeek(2);
-    $week3 = $c->getWeek(3);
-
-    $expected0 = array();
-    $expected1 = array();
-    $expected2 = array();
-    $expected3 = array();
-
-    for($i=0;$i<7;$i++)
-      $expected0[] = new lmbDate(sprintf("1999-02-%02d", $i+1));
-    for($i=7;$i<14;$i++)
-      $expected1[] = new lmbDate(sprintf("1999-02-%02d", $i+1));
-    for($i=14;$i<21;$i++)
-      $expected2[] = new lmbDate(sprintf("1999-02-%02d", $i+1));
-    for($i=21;$i<28;$i++)
-      $expected3[] = new lmbDate(sprintf("1999-02-%02d", $i+1));
-
-    $this->assertEqual($week0, $expected0);
-    $this->assertEqual($week1, $expected1);
-    $this->assertEqual($week2, $expected2);
-    $this->assertEqual($week3, $expected3);
-  }
-
-  function testGetWeekWithDaysFromBoundaryMonths()
-  {
-    $c = new lmbMonthCalendar(2007, 2);
-    $week0 = $c->getWeek(0);
-    $week1 = $c->getWeek(1);
-    $week2 = $c->getWeek(2);
-    $week3 = $c->getWeek(3);
-    $week4 = $c->getWeek(4);
-
-    $expected0 = array();
-    $expected1 = array();
-    $expected2 = array();
-    $expected3 = array();
-    $expected4 = array();
-
-    for($i=29;$i<32;$i++)
-      $expected0[] = new lmbDate(sprintf("2007-01-%02d", $i));
-    for($i=1;$i<5;$i++)
-      $expected0[] = new lmbDate(sprintf("2007-02-%02d", $i));
-
-    for($i=5;$i<12;$i++)
-      $expected1[] = new lmbDate(sprintf("2007-02-%02d", $i));
-    for($i=12;$i<19;$i++)
-      $expected2[] = new lmbDate(sprintf("2007-02-%02d", $i));
-    for($i=19;$i<26;$i++)
-      $expected3[] = new lmbDate(sprintf("2007-02-%02d", $i));
-
-    for($i=26;$i<29;$i++)
-      $expected4[] = new lmbDate(sprintf("2007-02-%02d", $i));
-    for($i=1;$i<5;$i++)
-      $expected4[] = new lmbDate(sprintf("2007-03-%02d", $i));
-
-    $this->assertEqual($week0, $expected0);
-    $this->assertEqual($week1, $expected1);
-    $this->assertEqual($week2, $expected2);
-    $this->assertEqual($week3, $expected3);
-    $this->assertEqual($week4, $expected4);
-  }
-
-  function testGetAllWeeks()
-  {
-    $c = new lmbMonthCalendar(2007, 2);
-    $weeks = $c->getAllWeeks();
-    $this->assertEqual($weeks, array($c->getWeek(0),  $c->getWeek(1), $c->getWeek(2),
-                                     $c->getWeek(3), $c->getWeek(4)));
-  }
-
-  function testGetNextMonth()
-  {
-    $c = new lmbMonthCalendar(2007, 2);
-    $next = $c->getNextMonth();
-    $this->assertEqual(new lmbMonthCalendar(2007, 3), $next);
-  }
-
-  function testGetNextMothFromDecember()
-  {
-    $c = new lmbMonthCalendar(2007, 12);
-    $next = $c->getNextMonth();
-    $this->assertEqual(new lmbMonthCalendar(2008, 1), $next);
-  }
-
-  function testGetPrevMonth()
-  {
-    $c = new lmbMonthCalendar(2007, 2);
-    $prev = $c->getPrevMonth();
-    $this->assertEqual(new lmbMonthCalendar(2007, 1), $prev);
-  }
-
-  function testGetPrevMonthFromJanuary()
-  {
-    $c = new lmbMonthCalendar(2007, 1);
-    $prev = $c->getPrevMonth();
-    $this->assertEqual(new lmbMonthCalendar(2006, 12), $prev);
-  }
-}
-?>
\ No newline at end of file

Copied: 3.x/trunk/limb/datetime/tests/cases/lmbMonthTest.class.php (from rev 5832, 3.x/trunk/limb/datetime/tests/cases/lmbMonthCalendarTest.class.php)
===================================================================
--- 3.x/trunk/limb/datetime/tests/cases/lmbMonthTest.class.php	                        (rev 0)
+++ 3.x/trunk/limb/datetime/tests/cases/lmbMonthTest.class.php	2007-05-08 12:34:32 UTC (rev 5834)
@@ -0,0 +1,161 @@
+<?php
+/**
+ * Limb Web Application Framework
+ *
+ * @link http://limb-project.com
+ *
+ * @copyright  Copyright &copy; 2004-2007 BIT
+ * @license    LGPL http://www.gnu.org/copyleft/lesser.html
+ * @version    $Id: lmbDateTest.class.php 5824 2007-05-07 13:44:24Z pachanga $
+ * @package    datetime
+ */
+lmb_require('limb/datetime/src/lmbMonth.class.php');
+
+class lmbMonthTest extends UnitTestCase
+{
+  function testGetBoundaries()
+  {
+    $c = new lmbMonth(2007, 5);
+    $this->assertEqual(new lmbDate('2007-05-01'), $c->getStartDate());
+    $this->assertEqual(new lmbDate('2007-05-31'), $c->getEndDate());
+  }
+
+  function testGetNumberOfDays()
+  {
+    $c = new lmbMonth(2007, 5);
+    $this->assertEqual($c->getNumberOfDays(), 31);
+  }
+
+  function testGetNumberOfDaysForLeapYear()
+  {
+    $c1 = new lmbMonth(2005, 2);
+    $this->assertEqual($c1->getNumberOfDays(), 28);
+
+    $c2 = new lmbMonth(2004, 2);
+    $this->assertEqual($c2->getNumberOfDays(), 29);
+  }
+
+  function testGetNumberOfWeeks()
+  {
+    $c1 = new lmbMonth(1999, 2);
+    $this->assertEqual($c1->getNumberOfWeeks(), 4);
+
+    $c2 = new lmbMonth(2007, 2);
+    $this->assertEqual($c2->getNumberOfWeeks(), 5);
+
+    $c3 = new lmbMonth(2010, 5);
+    $this->assertEqual($c3->getNumberOfWeeks(), 6);
+  }
+
+  function testGetWeekFailed()
+  {
+    $c = new lmbMonth(1999, 2);
+    $this->assertNull($c->getWeek(4));
+    $this->assertNull($c->getWeek(10));
+    $this->assertNull($c->getWeek(-1));
+  }
+
+  function testGetIdealWeek()
+  {
+    $c = new lmbMonth(1999, 2);
+    $week0 = $c->getWeek(0);
+    $week1 = $c->getWeek(1);
+    $week2 = $c->getWeek(2);
+    $week3 = $c->getWeek(3);
+
+    $expected0 = array();
+    $expected1 = array();
+    $expected2 = array();
+    $expected3 = array();
+
+    for($i=0;$i<7;$i++)
+      $expected0[] = new lmbDate(sprintf("1999-02-%02d", $i+1));
+    for($i=7;$i<14;$i++)
+      $expected1[] = new lmbDate(sprintf("1999-02-%02d", $i+1));
+    for($i=14;$i<21;$i++)
+      $expected2[] = new lmbDate(sprintf("1999-02-%02d", $i+1));
+    for($i=21;$i<28;$i++)
+      $expected3[] = new lmbDate(sprintf("1999-02-%02d", $i+1));
+
+    $this->assertEqual($week0, $expected0);
+    $this->assertEqual($week1, $expected1);
+    $this->assertEqual($week2, $expected2);
+    $this->assertEqual($week3, $expected3);
+  }
+
+  function testGetWeekWithDaysFromBoundaryMonths()
+  {
+    $c = new lmbMonth(2007, 2);
+    $week0 = $c->getWeek(0);
+    $week1 = $c->getWeek(1);
+    $week2 = $c->getWeek(2);
+    $week3 = $c->getWeek(3);
+    $week4 = $c->getWeek(4);
+
+    $expected0 = array();
+    $expected1 = array();
+    $expected2 = array();
+    $expected3 = array();
+    $expected4 = array();
+
+    for($i=29;$i<32;$i++)
+      $expected0[] = new lmbDate(sprintf("2007-01-%02d", $i));
+    for($i=1;$i<5;$i++)
+      $expected0[] = new lmbDate(sprintf("2007-02-%02d", $i));
+
+    for($i=5;$i<12;$i++)
+      $expected1[] = new lmbDate(sprintf("2007-02-%02d", $i));
+    for($i=12;$i<19;$i++)
+      $expected2[] = new lmbDate(sprintf("2007-02-%02d", $i));
+    for($i=19;$i<26;$i++)
+      $expected3[] = new lmbDate(sprintf("2007-02-%02d", $i));
+
+    for($i=26;$i<29;$i++)
+      $expected4[] = new lmbDate(sprintf("2007-02-%02d", $i));
+    for($i=1;$i<5;$i++)
+      $expected4[] = new lmbDate(sprintf("2007-03-%02d", $i));
+
+    $this->assertEqual($week0, $expected0);
+    $this->assertEqual($week1, $expected1);
+    $this->assertEqual($week2, $expected2);
+    $this->assertEqual($week3, $expected3);
+    $this->assertEqual($week4, $expected4);
+  }
+
+  function testGetAllWeeks()
+  {
+    $c = new lmbMonth(2007, 2);
+    $weeks = $c->getAllWeeks();
+    $this->assertEqual($weeks, array($c->getWeek(0),  $c->getWeek(1), $c->getWeek(2),
+                                     $c->getWeek(3), $c->getWeek(4)));
+  }
+
+  function testGetNextMonth()
+  {
+    $c = new lmbMonth(2007, 2);
+    $next = $c->getNextMonth();
+    $this->assertEqual(new lmbMonth(2007, 3), $next);
+  }
+
+  function testGetNextMothFromDecember()
+  {
+    $c = new lmbMonth(2007, 12);
+    $next = $c->getNextMonth();
+    $this->assertEqual(new lmbMonth(2008, 1), $next);
+  }
+
+  function testGetPrevMonth()
+  {
+    $c = new lmbMonth(2007, 2);
+    $prev = $c->getPrevMonth();
+    $this->assertEqual(new lmbMonth(2007, 1), $prev);
+  }
+
+  function testGetPrevMonthFromJanuary()
+  {
+    $c = new lmbMonth(2007, 1);
+    $prev = $c->getPrevMonth();
+    $this->assertEqual(new lmbMonth(2006, 12), $prev);
+  }
+}
+?>
\ No newline at end of file



More information about the limb-svn mailing list