- Timestamp:
- 2013/08/28 13:26:44 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_13-dev/data/module/Calendar/Decorator/Weekday.php
r23125 r23141 1 1 <?php 2 2 /* vim: set expandtab tabstop=4 shiftwidth=4: */ 3 3 // 4 // +----------------------------------------------------------------------+ 5 // | PHP Version 4 | 6 // +----------------------------------------------------------------------+ 7 // | Copyright (c) 1997-2002 The PHP Group | 8 // +----------------------------------------------------------------------+ 9 // | This source file is subject to version 2.02 of the PHP license, | 10 // | that is bundled with this package in the file LICENSE, and is | 11 // | available at through the world-wide-web at | 12 // | http://www.php.net/license/3_0.txt. | 13 // | If you did not receive a copy of the PHP license and are unable to | 14 // | obtain it through the world-wide-web, please send a note to | 15 // | license@php.net so we can mail you a copy immediately. | 16 // +----------------------------------------------------------------------+ 17 // | Authors: Harry Fuecks <hfuecks@phppatterns.com> | 18 // | Lorenzo Alberton <l dot alberton at quipo dot it> | 19 // +----------------------------------------------------------------------+ 20 // 21 // $Id: Weekday.php,v 1.3 2004/08/16 12:25:15 hfuecks Exp $ 22 // 4 23 /** 5 * Contains the Calendar_Decorator_Weekday class 6 * 7 * PHP versions 4 and 5 8 * 9 * LICENSE: Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 3. The name of the author may not be used to endorse or promote products 17 * derived from this software without specific prior written permission. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED 20 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 22 * IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY 23 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 * 30 * @category Date and Time 31 * @package Calendar 32 * @author Harry Fuecks <hfuecks@phppatterns.com> 33 * @author Lorenzo Alberton <l.alberton@quipo.it> 34 * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton 35 * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) 36 * @version CVS: $Id: Weekday.php 300729 2010-06-24 12:05:53Z quipo $ 37 * @link http://pear.php.net/package/Calendar 24 * @package Calendar 25 * @version $Id: Weekday.php,v 1.3 2004/08/16 12:25:15 hfuecks Exp $ 38 26 */ 39 27 … … 59 47 * <code> 60 48 * $Day = new Calendar_Day(2003, 10, 23); 61 * $Weekday = new Calendar_Decorator_Weekday($Day);49 * $Weekday = & new Calendar_Decorator_Weekday($Day); 62 50 * $Weekday->setFirstDay(0); // Set first day of week to Sunday (default Mon) 63 51 * echo $Weekday->thisWeekDay(); // Displays 5 - fifth day of week relative to Sun 64 52 * </code> 65 * 66 * @category Date and Time 67 * @package Calendar 68 * @author Harry Fuecks <hfuecks@phppatterns.com> 69 * @author Lorenzo Alberton <l.alberton@quipo.it> 70 * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton 71 * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) 72 * @link http://pear.php.net/package/Calendar 73 * @access public 53 * @package Calendar 54 * @access public 74 55 */ 75 56 class Calendar_Decorator_Weekday extends Calendar_Decorator … … 84 65 /** 85 66 * Constructs Calendar_Decorator_Weekday 86 * 87 * @param object &$Calendar subclass of Calendar 88 * 67 * @param object subclass of Calendar 89 68 * @access public 90 69 */ 91 function Calendar_Decorator_Weekday(& $Calendar)70 function Calendar_Decorator_Weekday(& $Calendar) 92 71 { 93 72 parent::Calendar_Decorator($Calendar); … … 96 75 /** 97 76 * Sets the first day of the week (0 = Sunday, 1 = Monday (default) etc) 98 * 99 * @param int $firstDay first day of week 100 * 77 * @param int first day of week 101 78 * @return void 102 79 * @access public 103 80 */ 104 function setFirstDay($firstDay) 105 { 81 function setFirstDay($firstDay) { 106 82 $this->firstDay = (int)$firstDay; 107 83 } … … 109 85 /** 110 86 * Returns the previous weekday 111 * 112 * @param string $format (default = 'int') return value format 113 * 114 * @return int $format numeric day of week or timestamp 87 * @param string (default = 'int') return value format 88 * @return int numeric day of week or timestamp 115 89 * @access public 116 90 */ 117 91 function prevWeekDay($format = 'int') 118 92 { 119 $ts 120 $Day = new Calendar_Day(2000, 1,1);93 $ts = $this->calendar->prevDay('timestamp'); 94 $Day = new Calendar_Day(2000,1,1); 121 95 $Day->setTimeStamp($ts); 122 $day = $this->calendar->cE->getDayOfWeek( 123 $Day->thisYear(), 124 $Day->thisMonth(), 125 $Day->thisDay() 126 ); 96 $day = $this->calendar->cE->getDayOfWeek($Day->thisYear(),$Day->thisMonth(),$Day->thisDay()); 127 97 $day = $this->adjustWeekScale($day); 128 98 return $this->returnValue('Day', $format, $ts, $day); … … 131 101 /** 132 102 * Returns the current weekday 133 * 134 * @param string $format (default = 'int') return value format 135 * 103 * @param string (default = 'int') return value format 136 104 * @return int numeric day of week or timestamp 137 105 * @access public … … 139 107 function thisWeekDay($format = 'int') 140 108 { 141 $ts = $this->calendar->thisDay('timestamp'); 142 $day = $this->calendar->cE->getDayOfWeek( 143 $this->calendar->year, 144 $this->calendar->month, 145 $this->calendar->day 146 ); 109 $ts = $this->calendar->thisDay('timestamp'); 110 $day = $this->calendar->cE->getDayOfWeek($this->calendar->year,$this->calendar->month,$this->calendar->day); 147 111 $day = $this->adjustWeekScale($day); 148 112 return $this->returnValue('Day', $format, $ts, $day); … … 151 115 /** 152 116 * Returns the next weekday 153 * 154 * @param string $format (default = 'int') return value format 155 * 117 * @param string (default = 'int') return value format 156 118 * @return int numeric day of week or timestamp 157 119 * @access public … … 159 121 function nextWeekDay($format = 'int') 160 122 { 161 $ts 162 $Day = new Calendar_Day(2000, 1,1);123 $ts = $this->calendar->nextDay('timestamp'); 124 $Day = new Calendar_Day(2000,1,1); 163 125 $Day->setTimeStamp($ts); 164 $day = $this->calendar->cE->getDayOfWeek( 165 $Day->thisYear(), 166 $Day->thisMonth(), 167 $Day->thisDay() 168 ); 126 $day = $this->calendar->cE->getDayOfWeek($Day->thisYear(),$Day->thisMonth(),$Day->thisDay()); 169 127 $day = $this->adjustWeekScale($day); 170 128 return $this->returnValue('Day', $format, $ts, $day); … … 173 131 /** 174 132 * Adjusts the day of the week relative to the first day of the week 175 * 176 * @param int $dayOfWeek day of week calendar from Calendar_Engine 177 * 133 * @param int day of week calendar from Calendar_Engine 178 134 * @return int day of week adjusted to first day 179 135 * @access private 180 136 */ 181 function adjustWeekScale($dayOfWeek) 182 { 137 function adjustWeekScale($dayOfWeek) { 183 138 $dayOfWeek = $dayOfWeek - $this->firstDay; 184 if ( $dayOfWeek >= 0) {139 if ( $dayOfWeek >= 0 ) { 185 140 return $dayOfWeek; 186 141 } else { 187 142 return $this->calendar->cE->getDaysInWeek( 188 $this->calendar->year, 189 $this->calendar->month, 190 $this->calendar->day 191 ) + $dayOfWeek; 143 $this->calendar->year,$this->calendar->month,$this->calendar->day 144 ) + $dayOfWeek; 192 145 } 193 146 }
Note: See TracChangeset
for help on using the changeset viewer.