note 57207 added to ref.datetime

From: Date: Tue, 27 Sep 2005 07:46:37 +0000
Subject: note 57207 added to ref.datetime
Groups: php.notes 
Request: Send a blank email to php-notes+get-95857@lists.php.net to get a copy of this message
Calculate Sum BusinessDays (Mon till Fri) between two date's : <?php function businessdays($begin, $end) { $rbegin = is_string($begin) ? strtotime(strval($begin)) : $begin; $rend = is_string($end) ? strtotime(strval($end)) : $end; if ($rbegin < 0 || $rend < 0) return 0; $begin = workday($rbegin, TRUE); $end = workday($rend, FALSE); if ($end < $begin) { $end = $begin; $begin = $end; } $difftime = $end - $begin; $diffdays = floor($difftime / (24 * 60 * 60)) + 1; if ($diffdays < 7) { $abegin = getdate($rbegin); $aend = getdate($rend); if ($diffdays == 1 && ($astart['wday'] == 0 || $astart['wday'] == 6) && ($aend['wday'] == 0 || $aend['wday'] == 6)) return 0; $abegin = getdate($begin); $aend = getdate($end); $weekends = ($aend['wday'] < $abegin['wday']) ? 1 : 0; } else $weekends = floor($diffdays / 7); return $diffdays - ($weekends * 2); } function workday($date, $begindate = TRUE) { $adate = getdate($date); $day = 24 * 60 * 60; if ($adate['wday'] == 0) // Sunday $date += $begindate ? $day : -($day * 2); elseif ($adate['wday'] == 6) // Saterday $date += $begindate ? $day * 2 : -$day; return $date; } ?> ---- Manual Page -- http://www.php.net/manual/en/ref.datetime.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+57207 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+57207&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+57207&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+57207&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+57207&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+57207&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+57207&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+57207&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+57207&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#95857) next »