Changeset 23141 for branches/version-2_13-dev/data/module/Calendar/Engine
- Timestamp:
- 2013/08/28 13:26:44 (13 years ago)
- Location:
- branches/version-2_13-dev/data/module/Calendar/Engine
- Files:
-
- 3 edited
-
Interface.php (modified) (23 diffs)
-
PearDate.php (modified) (27 diffs)
-
UnixTS.php (modified) (31 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_13-dev/data/module/Calendar/Engine/Interface.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 // | [email protected] so we can mail you a copy immediately. | 16 // +----------------------------------------------------------------------+ 17 // | Authors: Harry Fuecks <[email protected]> | 18 // +----------------------------------------------------------------------+ 19 // 20 // $Id: Interface.php,v 1.5 2004/08/16 12:29:18 hfuecks Exp $ 21 // 4 22 /** 5 * Contains the Calendar_Engine_Interface class (interface) 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 <[email protected]> 33 * @author Lorenzo Alberton <[email protected]> 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: Interface.php 269074 2008-11-15 21:21:42Z quipo $ 37 * @link http://pear.php.net/package/Calendar 23 * @package Calendar 24 * @version $Id: Interface.php,v 1.5 2004/08/16 12:29:18 hfuecks Exp $ 38 25 */ 39 40 26 /** 41 27 * The methods the classes implementing the Calendar_Engine must implement. 42 28 * Note this class is not used but simply to help development 43 * 44 * @category Date and Time 45 * @package Calendar 46 * @author Harry Fuecks <[email protected]> 47 * @author Lorenzo Alberton <[email protected]> 48 * @copyright 2003-2007 Harry Fuecks, Lorenzo Alberton 49 * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) 50 * @link http://pear.php.net/package/Calendar 29 * @package Calendar 51 30 * @access protected 52 31 */ … … 58 37 * Typically called "internally" by methods like stampToYear. 59 38 * Return value can vary, depending on the specific implementation 60 * 61 * @param int $stamp timestamp (depending on implementation) 62 * 39 * @param int timestamp (depending on implementation) 63 40 * @return mixed 64 41 * @access protected … … 70 47 /** 71 48 * Returns a numeric year given a timestamp 72 * 73 * @param int $stamp timestamp (depending on implementation) 74 * 49 * @param int timestamp (depending on implementation) 75 50 * @return int year (e.g. 2003) 76 51 * @access protected … … 82 57 /** 83 58 * Returns a numeric month given a timestamp 84 * 85 * @param int $stamp timestamp (depending on implementation) 86 * 59 * @param int timestamp (depending on implementation) 87 60 * @return int month (e.g. 9) 88 61 * @access protected … … 94 67 /** 95 68 * Returns a numeric day given a timestamp 96 * 97 * @param int $stamp timestamp (depending on implementation) 98 * 69 * @param int timestamp (depending on implementation) 99 70 * @return int day (e.g. 15) 100 71 * @access protected … … 106 77 /** 107 78 * Returns a numeric hour given a timestamp 108 * 109 * @param int $stamp timestamp (depending on implementation) 110 * 79 * @param int timestamp (depending on implementation) 111 80 * @return int hour (e.g. 13) 112 81 * @access protected … … 118 87 /** 119 88 * Returns a numeric minute given a timestamp 120 * 121 * @param int $stamp timestamp (depending on implementation) 122 * 89 * @param int timestamp (depending on implementation) 123 90 * @return int minute (e.g. 34) 124 91 * @access protected … … 130 97 /** 131 98 * Returns a numeric second given a timestamp 132 * 133 * @param int $stamp timestamp (depending on implementation) 134 * 99 * @param int timestamp (depending on implementation) 135 100 * @return int second (e.g. 51) 136 101 * @access protected … … 141 106 142 107 /** 143 * Returns a timestamp. Can be worth "caching" generated timestamps in a 144 * static variable, identified by the params this method accepts, 145 * to timestamp will only be calculated once. 146 * 147 * @param int $y year (e.g. 2003) 148 * @param int $m month (e.g. 9) 149 * @param int $d day (e.g. 13) 150 * @param int $h hour (e.g. 13) 151 * @param int $i minute (e.g. 34) 152 * @param int $s second (e.g. 53) 153 * 108 * Returns a timestamp. Can be worth "caching" generated 109 * timestamps in a static variable, identified by the 110 * params this method accepts, to timestamp will only 111 * be calculated once. 112 * @param int year (e.g. 2003) 113 * @param int month (e.g. 9) 114 * @param int day (e.g. 13) 115 * @param int hour (e.g. 13) 116 * @param int minute (e.g. 34) 117 * @param int second (e.g. 53) 154 118 * @return int (depends on implementation) 155 119 * @access protected 156 120 */ 157 function dateToStamp($y, $m, $d, $h, $i,$s)121 function dateToStamp($y,$m,$d,$h,$i,$s) 158 122 { 159 123 } … … 161 125 /** 162 126 * The upper limit on years that the Calendar Engine can work with 163 *164 127 * @return int (e.g. 2037) 165 128 * @access protected … … 171 134 /** 172 135 * The lower limit on years that the Calendar Engine can work with 173 *174 136 * @return int (e.g 1902) 175 137 * @access protected … … 181 143 /** 182 144 * Returns the number of months in a year 183 * 184 * @param int $y (optional) year to get months for 185 * 145 * @param int (optional) year to get months for 186 146 * @return int (e.g. 12) 187 147 * @access protected … … 193 153 /** 194 154 * Returns the number of days in a month, given year and month 195 * 196 * @param int $y year (e.g. 2003) 197 * @param int $m month (e.g. 9) 198 * 155 * @param int year (e.g. 2003) 156 * @param int month (e.g. 9) 199 157 * @return int days in month 200 158 * @access protected … … 207 165 * Returns numeric representation of the day of the week in a month, 208 166 * given year and month 209 * 210 * @param int $y year (e.g. 2003) 211 * @param int $m month (e.g. 9) 212 * 167 * @param int year (e.g. 2003) 168 * @param int month (e.g. 9) 213 169 * @return int 214 170 * @access protected … … 220 176 /** 221 177 * Returns the number of days in a week 222 * 223 * @param int $y year (2003) 224 * @param int $m month (9) 225 * @param int $d day (4) 226 * 178 * @param int year (2003) 179 * @param int month (9) 180 * @param int day (4) 227 181 * @return int (e.g. 7) 228 182 * @access protected 229 183 */ 230 function getDaysInWeek($y= null, $m=null, $d=null)184 function getDaysInWeek($y=NULL, $m=NULL, $d=NULL) 231 185 { 232 186 } … … 234 188 /** 235 189 * Returns the number of the week in the year (ISO-8601), given a date 236 * 237 * @param int $y year (2003) 238 * @param int $m month (9) 239 * @param int $d day (4) 240 * 190 * @param int year (2003) 191 * @param int month (9) 192 * @param int day (4) 241 193 * @return int week number 242 194 * @access protected … … 248 200 /** 249 201 * Returns the number of the week in the month, given a date 250 * 251 * @param int $y year (2003) 252 * @param int $m month (9) 253 * @param int $d day (4) 254 * @param int $firstDay first day of the week (default: 1 - monday) 255 * 202 * @param int year (2003) 203 * @param int month (9) 204 * @param int day (4) 205 * @param int first day of the week (default: 1 - monday) 256 206 * @return int week number 257 207 * @access protected … … 263 213 /** 264 214 * Returns the number of weeks in the month 265 * 266 * @param int $y year (2003) 267 * @param int $m month (9) 268 * 215 * @param int year (2003) 216 * @param int month (9) 217 * @param int first day of the week (default: 1 - monday) 269 218 * @return int weeks number 270 219 * @access protected … … 276 225 /** 277 226 * Returns the number of the day of the week (0=sunday, 1=monday...) 278 * 279 * @param int $y year (2003) 280 * @param int $m month (9) 281 * @param int $d day (4) 282 * 227 * @param int year (2003) 228 * @param int month (9) 229 * @param int day (4) 283 230 * @return int weekday number 284 231 * @access protected … … 290 237 /** 291 238 * Returns the numeric values of the days of the week. 292 * 293 * @param int $y year (2003) 294 * @param int $m month (9) 295 * @param int $d day (4) 296 * 239 * @param int year (2003) 240 * @param int month (9) 241 * @param int day (4) 297 242 * @return array list of numeric values of days in week, beginning 0 298 243 * @access protected 299 244 */ 300 function getWeekDays($y= null, $m=null, $d=null)245 function getWeekDays($y=NULL, $m=NULL, $d=NULL) 301 246 { 302 247 } … … 305 250 * Returns the default first day of the week as an integer. Must be a 306 251 * member of the array returned from getWeekDays 307 * 308 * @param int $y year (2003) 309 * @param int $m month (9) 310 * @param int $d day (4) 311 * 252 * @param int year (2003) 253 * @param int month (9) 254 * @param int day (4) 312 255 * @return int (e.g. 1 for Monday) 313 256 * @see getWeekDays 314 257 * @access protected 315 258 */ 316 function getFirstDayOfWeek($y=null, $m=null, $d=null) 317 { 318 } 319 320 /** 321 * Returns the number of hours in a day 322 * 323 * @param int $y year (2003) 324 * @param int $m month (9) 325 * @param int $d day (4) 326 * 259 function getFirstDayOfWeek($y=NULL, $m=NULL, $d=NULL) 260 { 261 } 262 263 /** 264 * Returns the number of hours in a day<br> 265 * @param int (optional) day to get hours for 327 266 * @return int (e.g. 24) 328 267 * @access protected … … 334 273 /** 335 274 * Returns the number of minutes in an hour 336 * 337 * @param int $y year (2003) 338 * @param int $m month (9) 339 * @param int $d day (4) 340 * @param int $h hour 341 * 275 * @param int (optional) hour to get minutes for 342 276 * @return int 343 277 * @access protected … … 349 283 /** 350 284 * Returns the number of seconds in a minutes 351 * 352 * @param int $y year (2003) 353 * @param int $m month (9) 354 * @param int $d day (4) 355 * @param int $h hour 356 * @param int $i minute 357 * 285 * @param int (optional) minute to get seconds for 358 286 * @return int 359 287 * @access protected 360 288 */ 361 289 function getSecondsInMinute($y=null,$m=null,$d=null,$h=null,$i=null) 362 {363 }364 365 /**366 * Checks if the given day is the current day367 *368 * @param int timestamp (depending on implementation)369 *370 * @return boolean371 * @access protected372 */373 function isToday($stamp)374 290 { 375 291 } -
branches/version-2_13-dev/data/module/Calendar/Engine/PearDate.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 // | [email protected] so we can mail you a copy immediately. | 16 // +----------------------------------------------------------------------+ 17 // | Authors: Lorenzo Alberton <l dot alberton at quipo dot it> | 18 // +----------------------------------------------------------------------+ 19 // 20 // $Id: PearDate.php,v 1.8 2004/08/20 20:00:55 quipo Exp $ 21 // 4 22 /** 5 * Contains the Calendar_Engine_PearDate 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 Lorenzo Alberton <[email protected]> 33 * @copyright 2003-2007 Lorenzo Alberton 34 * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) 35 * @version CVS: $Id: PearDate.php 269076 2008-11-15 21:41:38Z quipo $ 36 * @link http://pear.php.net/package/Calendar 23 * @package Calendar 24 * @version $Id: PearDate.php,v 1.8 2004/08/20 20:00:55 quipo Exp $ 37 25 */ 38 39 26 /** 40 27 * Load PEAR::Date class … … 45 32 * Performs calendar calculations based on the PEAR::Date class 46 33 * Timestamps are in the ISO-8601 format (YYYY-MM-DD HH:MM:SS) 47 * 48 * @category Date and Time 49 * @package Calendar 50 * @author Lorenzo Alberton <[email protected]> 51 * @copyright 2003-2007 Lorenzo Alberton 52 * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) 53 * @link http://pear.php.net/package/Calendar 34 * @package Calendar 54 35 * @access protected 55 36 */ … … 60 41 * Uses a static variable to prevent date() being used twice 61 42 * for a date which is already known 62 * 63 * @param mixed $stamp Any timestamp format recognized by Pear::Date 64 * 43 * @param mixed Any timestamp format recognized by Pear::Date 65 44 * @return object Pear::Date object 66 45 * @access protected … … 77 56 /** 78 57 * Returns a numeric year given a iso-8601 datetime 79 * 80 * @param string $stamp iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 81 * 58 * @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 82 59 * @return int year (e.g. 2003) 83 60 * @access protected … … 91 68 /** 92 69 * Returns a numeric month given a iso-8601 datetime 93 * 94 * @param string $stamp iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 95 * 70 * @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 96 71 * @return int month (e.g. 9) 97 72 * @access protected … … 105 80 /** 106 81 * Returns a numeric day given a iso-8601 datetime 107 * 108 * @param string $stamp iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 109 * 82 * @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 110 83 * @return int day (e.g. 15) 111 84 * @access protected … … 119 92 /** 120 93 * Returns a numeric hour given a iso-8601 datetime 121 * 122 * @param string $stamp iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 123 * 94 * @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 124 95 * @return int hour (e.g. 13) 125 96 * @access protected … … 133 104 /** 134 105 * Returns a numeric minute given a iso-8601 datetime 135 * 136 * @param string $stamp iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 137 * 106 * @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 138 107 * @return int minute (e.g. 34) 139 108 * @access protected … … 147 116 /** 148 117 * Returns a numeric second given a iso-8601 datetime 149 * 150 * @param string $stamp iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 151 * 118 * @param string iso-8601 datetime (YYYY-MM-DD HH:MM:SS) 152 119 * @return int second (e.g. 51) 153 120 * @access protected … … 161 128 /** 162 129 * Returns a iso-8601 datetime 163 * 164 * @param int $y year (2003) 165 * @param int $m month (9) 166 * @param int $d day (13) 167 * @param int $h hour (13) 168 * @param int $i minute (34) 169 * @param int $s second (53) 170 * 130 * @param int year (2003) 131 * @param int month (9) 132 * @param int day (13) 133 * @param int hour (13) 134 * @param int minute (34) 135 * @param int second (53) 171 136 * @return string iso-8601 datetime 172 137 * @access protected … … 186 151 /** 187 152 * Set the correct date values (useful for math operations on dates) 188 * 189 * @param int &$y year (2003) 190 * @param int &$m month (9) 191 * @param int &$d day (13) 192 * @param int &$h hour (13) 193 * @param int &$i minute (34) 194 * @param int &$s second (53) 195 * 196 * @return void 153 * @param int year (2003) 154 * @param int month (9) 155 * @param int day (13) 156 * @param int hour (13) 157 * @param int minute (34) 158 * @param int second (53) 197 159 * @access protected 198 160 */ … … 248 210 /** 249 211 * The upper limit on years that the Calendar Engine can work with 250 *251 212 * @return int 9999 252 213 * @access protected … … 259 220 /** 260 221 * The lower limit on years that the Calendar Engine can work with 261 *262 222 * @return int 0 263 223 * @access protected … … 270 230 /** 271 231 * Returns the number of months in a year 272 *273 * @param int $y year274 *275 232 * @return int (12) 276 233 * @access protected … … 283 240 /** 284 241 * Returns the number of days in a month, given year and month 285 * 286 * @param int $y year (2003) 287 * @param int $m month (9) 288 * 242 * @param int year (2003) 243 * @param int month (9) 289 244 * @return int days in month 290 245 * @access protected … … 298 253 * Returns numeric representation of the day of the week in a month, 299 254 * given year and month 300 * 301 * @param int $y year (2003) 302 * @param int $m month (9) 303 * 255 * @param int year (2003) 256 * @param int month (9) 304 257 * @return int from 0 to 7 305 258 * @access protected … … 312 265 /** 313 266 * Returns the number of days in a week 314 * 315 * @param int $y year (2003) 316 * @param int $m month (9) 317 * @param int $d day (4) 318 * 267 * @param int year (2003) 268 * @param int month (9) 269 * @param int day (4) 319 270 * @return int (7) 320 271 * @access protected 321 272 */ 322 function getDaysInWeek($y= null, $m=null, $d=null)273 function getDaysInWeek($y=NULL, $m=NULL, $d=NULL) 323 274 { 324 275 return 7; … … 327 278 /** 328 279 * Returns the number of the week in the year (ISO-8601), given a date 329 * 330 * @param int $y year (2003) 331 * @param int $m month (9) 332 * @param int $d day (4) 333 * 280 * @param int year (2003) 281 * @param int month (9) 282 * @param int day (4) 334 283 * @return int week number 335 284 * @access protected … … 337 286 function getWeekNInYear($y, $m, $d) 338 287 { 339 //return Date_Calc::weekOfYear($d, $m, $y); //beware, Date_Calc doesn't follow ISO-8601 standard! 340 list($nYear, $nWeek) = Date_Calc::weekOfYear4th($d, $m, $y); 341 return $nWeek; 288 return Date_Calc::weekOfYear($d, $m, $y); //beware, Date_Calc doesn't follow ISO-8601 standard! 342 289 } 343 290 344 291 /** 345 292 * Returns the number of the week in the month, given a date 346 * 347 * @param int $y year (2003) 348 * @param int $m month (9) 349 * @param int $d day (4) 350 * @param int $firstDay first day of the week (default: monday) 351 * 293 * @param int year (2003) 294 * @param int month (9) 295 * @param int day (4) 296 * @param int first day of the week (default: monday) 352 297 * @return int week number 353 298 * @access protected … … 367 312 /** 368 313 * Returns the number of weeks in the month 369 * 370 * @param int $y year (2003) 371 * @param int $m month (9) 372 * @param int $firstDay first day of the week (default: monday) 373 * 314 * @param int year (2003) 315 * @param int month (9) 316 * @param int first day of the week (default: monday) 374 317 * @return int weeks number 375 318 * @access protected … … 395 338 /** 396 339 * Returns the number of the day of the week (0=sunday, 1=monday...) 397 * 398 * @param int $y year (2003) 399 * @param int $m month (9) 400 * @param int $d day (4) 401 * 340 * @param int year (2003) 341 * @param int month (9) 342 * @param int day (4) 402 343 * @return int weekday number 403 344 * @access protected … … 410 351 /** 411 352 * Returns a list of integer days of the week beginning 0 412 * 413 * @param int $y year (2003) 414 * @param int $m month (9) 415 * @param int $d day (4) 416 * 353 * @param int year (2003) 354 * @param int month (9) 355 * @param int day (4) 417 356 * @return array (0, 1, 2, 3, 4, 5, 6) 1 = Monday 418 357 * @access protected 419 358 */ 420 function getWeekDays($y= null, $m=null, $d=null)359 function getWeekDays($y=NULL, $m=NULL, $d=NULL) 421 360 { 422 361 return array(0, 1, 2, 3, 4, 5, 6); … … 425 364 /** 426 365 * Returns the default first day of the week 427 * 428 * @param int $y year (2003) 429 * @param int $m month (9) 430 * @param int $d day (4) 431 * 366 * @param int year (2003) 367 * @param int month (9) 368 * @param int day (4) 432 369 * @return int (default 1 = Monday) 433 370 * @access protected 434 371 */ 435 function getFirstDayOfWeek($y= null, $m=null, $d=null)372 function getFirstDayOfWeek($y=NULL, $m=NULL, $d=NULL) 436 373 { 437 374 return 1; … … 440 377 /** 441 378 * Returns the number of hours in a day 442 *443 * @param int $y year (2003)444 * @param int $m month (9)445 * @param int $d day (4)446 *447 379 * @return int (24) 448 380 * @access protected … … 455 387 /** 456 388 * Returns the number of minutes in an hour 457 *458 * @param int $y year (2003)459 * @param int $m month (9)460 * @param int $d day (4)461 * @param int $h hour462 *463 389 * @return int (60) 464 390 * @access protected … … 471 397 /** 472 398 * Returns the number of seconds in a minutes 473 *474 * @param int $y year (2003)475 * @param int $m month (9)476 * @param int $d day (4)477 * @param int $h hour478 * @param int $i minute479 *480 399 * @return int (60) 481 400 * @access protected … … 484 403 { 485 404 return 60; 486 }487 488 /**489 * Checks if the given day is the current day490 *491 * @param mixed $stamp Any timestamp format recognized by Pear::Date492 *493 * @return boolean494 * @access protected495 */496 function isToday($stamp)497 {498 static $today = null;499 if (is_null($today)) {500 $today = new Date();501 }502 $date = Calendar_Engine_PearDate::stampCollection($stamp);503 return ( $date->day == $today->getDay()504 && $date->month == $today->getMonth()505 && $date->year == $today->getYear()506 );507 405 } 508 406 } -
branches/version-2_13-dev/data/module/Calendar/Engine/UnixTS.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 // | [email protected] so we can mail you a copy immediately. | 16 // +----------------------------------------------------------------------+ 17 // | Authors: Harry Fuecks <[email protected]> | 18 // +----------------------------------------------------------------------+ 19 // 20 // $Id: UnixTS.php,v 1.9 2004/08/20 20:00:55 quipo Exp $ 21 // 4 22 /** 5 * Contains the Calendar_Engine_UnixTS 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 <[email protected]> 33 * @copyright 2003-2007 Harry Fuecks 34 * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) 35 * @version CVS: $Id: UnixTS.php 269074 2008-11-15 21:21:42Z quipo $ 36 * @link http://pear.php.net/package/Calendar 23 * @package Calendar 24 * @version $Id: UnixTS.php,v 1.9 2004/08/20 20:00:55 quipo Exp $ 37 25 */ 38 39 26 /** 40 27 * Performs calendar calculations based on the PHP date() function and 41 28 * Unix timestamps (using PHP's mktime() function). 42 * 43 * @category Date and Time 44 * @package Calendar 45 * @author Harry Fuecks <[email protected]> 46 * @copyright 2003-2007 Harry Fuecks 47 * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) 48 * @link http://pear.php.net/package/Calendar 49 * @access protected 29 * @package Calendar 30 * @access protected 50 31 */ 51 32 class Calendar_Engine_UnixTS /* implements Calendar_Engine_Interface */ … … 68 49 * Uses a static variable to prevent date() being used twice 69 50 * for a date which is already known 70 * 71 * @param int $stamp Unix timestamp 72 * 51 * @param int Unix timestamp 73 52 * @return array 74 53 * @access protected … … 78 57 static $stamps = array(); 79 58 if ( !isset($stamps[$stamp]) ) { 80 $date = @date('Y n j H i s t W w', $stamp);59 $date = @date('Y n j H i s t W w',$stamp); 81 60 $stamps[$stamp] = sscanf($date, "%d %d %d %d %d %d %d %d %d"); 82 61 } … … 86 65 /** 87 66 * Returns a numeric year given a timestamp 88 * 89 * @param int $stamp Unix timestamp 90 * 67 * @param int Unix timestamp 91 68 * @return int year (e.g. 2003) 92 69 * @access protected … … 100 77 /** 101 78 * Returns a numeric month given a timestamp 102 * 103 * @param int $stamp Unix timestamp 104 * 79 * @param int Unix timestamp 105 80 * @return int month (e.g. 9) 106 81 * @access protected … … 114 89 /** 115 90 * Returns a numeric day given a timestamp 116 * 117 * @param int $stamp Unix timestamp 118 * 91 * @param int Unix timestamp 119 92 * @return int day (e.g. 15) 120 93 * @access protected … … 128 101 /** 129 102 * Returns a numeric hour given a timestamp 130 * 131 * @param int $stamp Unix timestamp 132 * 103 * @param int Unix timestamp 133 104 * @return int hour (e.g. 13) 134 105 * @access protected … … 142 113 /** 143 114 * Returns a numeric minute given a timestamp 144 * 145 * @param int $stamp Unix timestamp 146 * 115 * @param int Unix timestamp 147 116 * @return int minute (e.g. 34) 148 117 * @access protected … … 156 125 /** 157 126 * Returns a numeric second given a timestamp 158 * 159 * @param int $stamp Unix timestamp 160 * 127 * @param int Unix timestamp 161 128 * @return int second (e.g. 51) 162 129 * @access protected … … 170 137 /** 171 138 * Returns a timestamp 172 * 173 * @param int $y year (2003) 174 * @param int $m month (9) 175 * @param int $d day (13) 176 * @param int $h hour (13) 177 * @param int $i minute (34) 178 * @param int $s second (53) 179 * 139 * @param int year (2003) 140 * @param int month (9) 141 * @param int day (13) 142 * @param int hour (13) 143 * @param int minute (34) 144 * @param int second (53) 180 145 * @return int Unix timestamp 181 146 * @access protected … … 184 149 { 185 150 static $dates = array(); 186 if ( !isset($dates[$y][$m][$d][$h][$i][$s])) {151 if ( !isset($dates[$y][$m][$d][$h][$i][$s]) ) { 187 152 $dates[$y][$m][$d][$h][$i][$s] = @mktime($h, $i, $s, $m, $d, $y); 188 153 } … … 192 157 /** 193 158 * The upper limit on years that the Calendar Engine can work with 194 *195 159 * @return int (2037) 196 160 * @access protected … … 203 167 /** 204 168 * The lower limit on years that the Calendar Engine can work with 205 *206 169 * @return int (1970 if it's Windows and 1902 for all other OSs) 207 170 * @access protected … … 214 177 /** 215 178 * Returns the number of months in a year 216 *217 * @param int $y year218 *219 179 * @return int (12) 220 * @access protected180 * @access protected 221 181 */ 222 182 function getMonthsInYear($y=null) … … 227 187 /** 228 188 * Returns the number of days in a month, given year and month 229 * 230 * @param int $y year (2003) 231 * @param int $m month (9) 232 * 189 * @param int year (2003) 190 * @param int month (9) 233 191 * @return int days in month 234 192 * @access protected … … 236 194 function getDaysInMonth($y, $m) 237 195 { 238 $stamp = Calendar_Engine_UnixTS::dateToStamp($y, $m,1);239 $date = Calendar_Engine_UnixTS::stampCollection($stamp);196 $stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,1); 197 $date = Calendar_Engine_UnixTS::stampCollection($stamp); 240 198 return $date[6]; 241 199 } … … 244 202 * Returns numeric representation of the day of the week in a month, 245 203 * given year and month 246 * 247 * @param int $y year (2003) 248 * @param int $m month (9) 249 * 204 * @param int year (2003) 205 * @param int month (9) 250 206 * @return int from 0 to 6 251 207 * @access protected … … 253 209 function getFirstDayInMonth($y, $m) 254 210 { 255 $stamp = Calendar_Engine_UnixTS::dateToStamp($y, $m,1);256 $date = Calendar_Engine_UnixTS::stampCollection($stamp);211 $stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,1); 212 $date = Calendar_Engine_UnixTS::stampCollection($stamp); 257 213 return $date[8]; 258 214 } … … 260 216 /** 261 217 * Returns the number of days in a week 262 * 263 * @param int $y year (2003) 264 * @param int $m month (9) 265 * @param int $d day (4) 266 * 218 * @param int year (2003) 219 * @param int month (9) 220 * @param int day (4) 267 221 * @return int (7) 268 222 * @access protected 269 223 */ 270 function getDaysInWeek($y= null, $m=null, $d=null)224 function getDaysInWeek($y=NULL, $m=NULL, $d=NULL) 271 225 { 272 226 return 7; … … 275 229 /** 276 230 * Returns the number of the week in the year (ISO-8601), given a date 277 * 278 * @param int $y year (2003) 279 * @param int $m month (9) 280 * @param int $d day (4) 281 * 231 * @param int year (2003) 232 * @param int month (9) 233 * @param int day (4) 282 234 * @return int week number 283 235 * @access protected … … 285 237 function getWeekNInYear($y, $m, $d) 286 238 { 287 $stamp = Calendar_Engine_UnixTS::dateToStamp($y, $m,$d);288 $date = Calendar_Engine_UnixTS::stampCollection($stamp);239 $stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,$d); 240 $date = Calendar_Engine_UnixTS::stampCollection($stamp); 289 241 return $date[7]; 290 242 } … … 292 244 /** 293 245 * Returns the number of the week in the month, given a date 294 * 295 * @param int $y year (2003) 296 * @param int $m month (9) 297 * @param int $d day (4) 298 * @param int $firstDay first day of the week (default: monday) 299 * 246 * @param int year (2003) 247 * @param int month (9) 248 * @param int day (4) 249 * @param int first day of the week (default: monday) 300 250 * @return int week number 301 251 * @access protected … … 303 253 function getWeekNInMonth($y, $m, $d, $firstDay=1) 304 254 { 305 $weekEnd = ( 0 == $firstDay) ? $this->getDaysInWeek()-1 : $firstDay-1;255 $weekEnd = ($firstDay == 0) ? $this->getDaysInWeek()-1 : $firstDay-1; 306 256 $end_of_week = 1; 307 257 while (@date('w', @mktime(0, 0, 0, $m, $end_of_week, $y)) != $weekEnd) { … … 318 268 /** 319 269 * Returns the number of weeks in the month 320 * 321 * @param int $y year (2003) 322 * @param int $m month (9) 323 * @param int $firstDay first day of the week (default: monday) 324 * 270 * @param int year (2003) 271 * @param int month (9) 272 * @param int first day of the week (default: monday) 325 273 * @return int weeks number 326 274 * @access protected 327 275 */ 328 function getWeeksInMonth($y, $m, $firstDay =1)276 function getWeeksInMonth($y, $m, $firstDay=1) 329 277 { 330 278 $FDOM = $this->getFirstDayInMonth($y, $m); … … 346 294 /** 347 295 * Returns the number of the day of the week (0=sunday, 1=monday...) 348 * 349 * @param int $y year (2003) 350 * @param int $m month (9) 351 * @param int $d day (4) 352 * 296 * @param int year (2003) 297 * @param int month (9) 298 * @param int day (4) 353 299 * @return int weekday number 354 300 * @access protected … … 356 302 function getDayOfWeek($y, $m, $d) 357 303 { 358 $stamp = Calendar_Engine_UnixTS::dateToStamp($y, $m,$d);304 $stamp = Calendar_Engine_UnixTS::dateToStamp($y,$m,$d); 359 305 $date = Calendar_Engine_UnixTS::stampCollection($stamp); 360 306 return $date[8]; … … 363 309 /** 364 310 * Returns a list of integer days of the week beginning 0 365 * 366 * @param int $y year (2003) 367 * @param int $m month (9) 368 * @param int $d day (4) 369 * 311 * @param int year (2003) 312 * @param int month (9) 313 * @param int day (4) 370 314 * @return array (0,1,2,3,4,5,6) 1 = Monday 371 315 * @access protected 372 316 */ 373 function getWeekDays($y= null, $m=null, $d=null)317 function getWeekDays($y=NULL, $m=NULL, $d=NULL) 374 318 { 375 319 return array(0, 1, 2, 3, 4, 5, 6); … … 378 322 /** 379 323 * Returns the default first day of the week 380 * 381 * @param int $y year (2003) 382 * @param int $m month (9) 383 * @param int $d day (4) 384 * 324 * @param int year (2003) 325 * @param int month (9) 326 * @param int day (4) 385 327 * @return int (default 1 = Monday) 386 328 * @access protected 387 329 */ 388 function getFirstDayOfWeek($y= null, $m=null, $d=null)330 function getFirstDayOfWeek($y=NULL, $m=NULL, $d=NULL) 389 331 { 390 332 return 1; … … 393 335 /** 394 336 * Returns the number of hours in a day 395 *396 * @param int $y year (2003)397 * @param int $m month (9)398 * @param int $d day (4)399 *400 337 * @return int (24) 401 338 * @access protected 402 339 */ 403 function getHoursInDay($y=null, $m=null,$d=null)340 function getHoursInDay($y=null,$m=null,$d=null) 404 341 { 405 342 return 24; … … 408 345 /** 409 346 * Returns the number of minutes in an hour 410 *411 * @param int $y year (2003)412 * @param int $m month (9)413 * @param int $d day (4)414 * @param int $h hour415 *416 347 * @return int (60) 417 348 * @access protected 418 349 */ 419 function getMinutesInHour($y=null, $m=null, $d=null,$h=null)350 function getMinutesInHour($y=null,$m=null,$d=null,$h=null) 420 351 { 421 352 return 60; … … 424 355 /** 425 356 * Returns the number of seconds in a minutes 426 *427 * @param int $y year (2003)428 * @param int $m month (9)429 * @param int $d day (4)430 * @param int $h hour431 * @param int $i minute432 *433 357 * @return int (60) 434 358 * @access protected 435 359 */ 436 function getSecondsInMinute($y=null, $m=null, $d=null, $h=null,$i=null)360 function getSecondsInMinute($y=null,$m=null,$d=null,$h=null,$i=null) 437 361 { 438 362 return 60; 439 }440 441 /**442 * Checks if the given day is the current day443 *444 * @param mixed $stamp Any timestamp format recognized by Pear::Date445 *446 * @return boolean447 * @access protected448 */449 function isToday($stamp)450 {451 static $today = null;452 if (is_null($today)) {453 $today_date = @date('Y n j');454 $today = sscanf($today_date, '%d %d %d');455 }456 $date = Calendar_Engine_UnixTS::stampCollection($stamp);457 return ( $date[2] == $today[2]458 && $date[1] == $today[1]459 && $date[0] == $today[0]460 );461 363 } 462 364 }
Note: See TracChangeset
for help on using the changeset viewer.
