public function Create($type, $year, $month, $day, $timezone, $firstDayOfWeek = 0) { if ($type == CalendarTypes::Day) { return new CalendarDay(Date::Create($year, $month, $day, 0, 0, 0, $timezone)); } if ($type == CalendarTypes::Week) { return CalendarWeek::FromDate($year, $month, $day, $timezone, $firstDayOfWeek); } return new CalendarMonth($month, $year, $timezone); }
public function testWhenFirstDayOfTheWeekIsNotSunday() { $timezone = 'America/Chicago'; $next = Date::Parse('2014-07-14', $timezone); $prev = Date::Parse('2014-06-30', $timezone); $expectedFirstDay = Date::Parse('2014-07-07', $timezone); $expectedLastDay = Date::Parse('2014-07-13', $timezone); $week = CalendarWeek::FromDate(2014, 7, 12, $timezone, 1); $this->assertEquals($expectedFirstDay, $week->FirstDay(), $week->FirstDay()->__toString()); $this->assertEquals($expectedLastDay, $week->LastDay(), $week->LastDay()->__toString()); $this->assertEquals($next, $week->GetNextDate(), $week->GetNextDate()->__toString()); $this->assertEquals($prev, $week->GetPreviousDate(), $week->GetPreviousDate()->__toString()); }