This is a stripped-down version of a calendar program. Can anyone explain why November 6 2016 appears twice? Or 2015-11-01? I'm assuming the fault lies with $calday = $calday + (60 * 60 * 24); ...but I'd like to know why some days apparently have less than 86400 seconds and how (efficiently) to work around that. Here is my code: $calday = strtotime('2016-10-30'); $finish = strtotime('2016-12-01'); while ( $calday < $finish ) { for ($dow = 0; $dow < 7; $dow++) { // set the year, month, and day $year = (int) date('Y', $calday); $month = (int) date('n', $calday); $day = (int) date('j', $calday); echo "Year: $year, Month: $month, Day: $day, Day of Week: $dow <br />\n"; // move on to the next day $calday = $calday + (60 * 60 * 24); } echo "* * *<br />\n"; } Thanks in advance for any help. -- Clifford R. Nieuwenhuis IT Manager Architectural Design Consultants, Inc. c.nieuwenhuis@xxxxxxxxxxxxxx 608-254-6181 -- Clifford R. Nieuwenhuis IT Manager Architectural Design Consultants, Inc. c.nieuwenhuis@xxxxxxxxxxxxxx 608-254-6181 Visit our redesigned website: www.adcidesign.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php