note 38666 added to function.cal-days-in-month
| From: | dbindel at austin dot rr dot com | Date: | Fri, 02 Jan 2004 02:06:26 +0000 |
| Subject: | note 38666 added to function.cal-days-in-month | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-62767@lists.php.net to get a copy of this message | ||
Here's a genius one-line function I just wrote to find the numbers of days in a month that
doesn't depend on any other functions.
Since I removed all unnecessary parentheses, this is probably the single most cryptic line of PHP
you will ever encounter.
The reason I made this is because I just found out I forgot to compile PHP with support for
calendars, and a class I'm writing for my website's open source section was broken. So
rather than recompiling PHP (which I will get around to tomorrow I guess), I just wrote this
function which should work just as well, and will always work without the requirement of PHP's
calendar extension or any other PHP functions for that matter.
I learned the days of the month using the old knuckle & inbetween knuckle method, so that should
explain the mod 7 part. :)
<?php
/*
* days_in_month($month, $year)
* Returns the number of days in a given month and year, taking into account leap years.
*
* $month: numeric month (integers 1-12)
* $year: numeric year (any integer)
*
* Prec: $month is an integer between 1 and 12, inclusive, and $year is an integer.
* Post: none
*/
function days_in_month($month, $year) {
return $month == 2 ? $year % 4 ? 28 : 29 : ($month % 7 % 2 ? 31 : 30);
}
?>
Enjoy,
David Bindel
----
Manual Page -- http://www.php.net/manual/en/function.cal-days-in-month.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+38666
Delete -- http://master.php.net/manage/user-notes.php?action=delete+38666&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+38666&report=yes
Search -- http://master.php.net/manage/user-notes.php