private function getObservedDate($holidayDate){
$dayofweek = date("w", strtotime($holidayDate));
if ($dayofweek == 6) $holidayDate = date('m/d/Y', strtotime("$holidayDate - 1 days"));
else if ($dayofweek == 0) $holidayDate = date('m/d/Y', strtotime("$holidayDate + 1 days"));
return $holidayDate;
}
private function getFederalHolidaysForYear($year){
$NY = $this->getObservedDate( date('m/d/Y', strtotime("1/1/$year")) );
$MLK = $this->getObservedDate( date('m/d/Y', strtotime("third monday of january $year")) );
$PD = $this->getObservedDate( date('m/d/Y', strtotime("third monday of february $year")) ); ;
$MDay = $this->getObservedDate( date('m/d/Y', strtotime("last monday of May $year")) );
$IDay = $this->getObservedDate( date('m/d/Y', strtotime("7/4/$year")) );
$LD = $this->getObservedDate( date('m/d/Y', strtotime("first monday of september $year")) );
$VD = $this->getObservedDate( date('m/d/Y', strtotime("11/11/$year")) );
$ColD =$this->getObservedDate( date('m/d/Y', strtotime("second monday of october $year")) );
$TG = $this->getObservedDate( date('m/d/Y', strtotime("last thursday of november $year")) );
$CD = $this->getObservedDate( date('m/d/Y', strtotime("12/25/$year")) );
$nonWorkingDays = array();
array_push($nonWorkingDays, $NY, $MLK, $PD, $MDay, $IDay, $LD, $ColD, $VD, $TG, $CD);
return $nonWorkingDays;
}