- Timestamp:
- 2013/08/26 15:52:37 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_13_0/data/module/Calendar/Decorator/Weekday.php
r20119 r23126 1 1 <?php 2 2 /* vim: set expandtab tabstop=4 shiftwidth=4: */ 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 // 3 23 4 /** 24 * @package Calendar 25 * @version $Id: Weekday.php,v 1.3 2004/08/16 12:25:15 hfuecks Exp $ 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 26 38 */ 27 39 … … 47 59 * <code> 48 60 * $Day = new Calendar_Day(2003, 10, 23); 49 * $Weekday = &new Calendar_Decorator_Weekday($Day);61 * $Weekday = new Calendar_Decorator_Weekday($Day); 50 62 * $Weekday->setFirstDay(0); // Set first day of week to Sunday (default Mon) 51 63 * echo $Weekday->thisWeekDay(); // Displays 5 - fifth day of week relative to Sun 52 64 * </code> 53 * @package Calendar 54 * @access public 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 55 74 */ 56 75 class Calendar_Decorator_Weekday extends Calendar_Decorator … … 65 84 /** 66 85 * Constructs Calendar_Decorator_Weekday 67 * @param object subclass of Calendar 86 * 87 * @param object &$Calendar subclass of Calendar 88 * 68 89 * @access public 69 90 */ 70 function Calendar_Decorator_Weekday(& 91 function Calendar_Decorator_Weekday(&$Calendar) 71 92 { 72 93 parent::Calendar_Decorator($Calendar); … … 75 96 /** 76 97 * Sets the first day of the week (0 = Sunday, 1 = Monday (default) etc) 77 * @param int first day of week 98 * 99 * @param int $firstDay first day of week 100 * 78 101 * @return void 79 102 * @access public 80 103 */ 81 function setFirstDay($firstDay) { 104 function setFirstDay($firstDay) 105 { 82 106 $this->firstDay = (int)$firstDay; 83 107 } … … 85 109 /** 86 110 * Returns the previous weekday 87 * @param string (default = 'int') return value format 88 * @return int numeric day of week or timestamp 111 * 112 * @param string $format (default = 'int') return value format 113 * 114 * @return int $format numeric day of week or timestamp 89 115 * @access public 90 116 */ 91 117 function prevWeekDay($format = 'int') 92 118 { 93 $ts = $this->calendar->prevDay('timestamp');94 $Day = new Calendar_Day(2000, 1,1);119 $ts = $this->calendar->prevDay('timestamp'); 120 $Day = new Calendar_Day(2000, 1, 1); 95 121 $Day->setTimeStamp($ts); 96 $day = $this->calendar->cE->getDayOfWeek($Day->thisYear(),$Day->thisMonth(),$Day->thisDay()); 122 $day = $this->calendar->cE->getDayOfWeek( 123 $Day->thisYear(), 124 $Day->thisMonth(), 125 $Day->thisDay() 126 ); 97 127 $day = $this->adjustWeekScale($day); 98 128 return $this->returnValue('Day', $format, $ts, $day); … … 101 131 /** 102 132 * Returns the current weekday 103 * @param string (default = 'int') return value format 133 * 134 * @param string $format (default = 'int') return value format 135 * 104 136 * @return int numeric day of week or timestamp 105 137 * @access public … … 107 139 function thisWeekDay($format = 'int') 108 140 { 109 $ts = $this->calendar->thisDay('timestamp'); 110 $day = $this->calendar->cE->getDayOfWeek($this->calendar->year,$this->calendar->month,$this->calendar->day); 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 ); 111 147 $day = $this->adjustWeekScale($day); 112 148 return $this->returnValue('Day', $format, $ts, $day); … … 115 151 /** 116 152 * Returns the next weekday 117 * @param string (default = 'int') return value format 153 * 154 * @param string $format (default = 'int') return value format 155 * 118 156 * @return int numeric day of week or timestamp 119 157 * @access public … … 121 159 function nextWeekDay($format = 'int') 122 160 { 123 $ts = $this->calendar->nextDay('timestamp');124 $Day = new Calendar_Day(2000, 1,1);161 $ts = $this->calendar->nextDay('timestamp'); 162 $Day = new Calendar_Day(2000, 1, 1); 125 163 $Day->setTimeStamp($ts); 126 $day = $this->calendar->cE->getDayOfWeek($Day->thisYear(),$Day->thisMonth(),$Day->thisDay()); 164 $day = $this->calendar->cE->getDayOfWeek( 165 $Day->thisYear(), 166 $Day->thisMonth(), 167 $Day->thisDay() 168 ); 127 169 $day = $this->adjustWeekScale($day); 128 170 return $this->returnValue('Day', $format, $ts, $day); … … 131 173 /** 132 174 * Adjusts the day of the week relative to the first day of the week 133 * @param int day of week calendar from Calendar_Engine 175 * 176 * @param int $dayOfWeek day of week calendar from Calendar_Engine 177 * 134 178 * @return int day of week adjusted to first day 135 179 * @access private 136 180 */ 137 function adjustWeekScale($dayOfWeek) { 181 function adjustWeekScale($dayOfWeek) 182 { 138 183 $dayOfWeek = $dayOfWeek - $this->firstDay; 139 if ( $dayOfWeek >= 0) {184 if ($dayOfWeek >= 0) { 140 185 return $dayOfWeek; 141 186 } else { 142 187 return $this->calendar->cE->getDaysInWeek( 143 $this->calendar->year,$this->calendar->month,$this->calendar->day 144 ) + $dayOfWeek; 188 $this->calendar->year, 189 $this->calendar->month, 190 $this->calendar->day 191 ) + $dayOfWeek; 145 192 } 146 193 }
Note: See TracChangeset
for help on using the changeset viewer.