Example #1
0
 /**
  * Calculates the first day of the given period depending on the given date.
  *
  * For period Weeks: Last day of a week is always sunday
  *
  * @param class_date_period_enum $objPeriod
  * @param class_date $objDate
  *
  * @return class_date
  */
 public function lastDayOfThis(class_date_period_enum $objPeriod, class_date $objDate)
 {
     $strRelativeString = "";
     if ($objPeriod->equals(class_date_period_enum::YEAR())) {
         $strRelativeString = "last day of december";
     } else {
         if ($objPeriod->equals(class_date_period_enum::HALFYEAR())) {
             $intMonth = $objDate->getIntMonth();
             if ($intMonth < 7) {
                 $strRelativeString = "last day of june";
             } else {
                 $strRelativeString = "last day of december";
             }
         } else {
             if ($objPeriod->equals(class_date_period_enum::QUARTER())) {
                 $intMonth = $objDate->getIntMonth();
                 if ($intMonth < 4) {
                     $strRelativeString = "last day of march";
                 } elseif ($intMonth > 3 && $intMonth < 7) {
                     $strRelativeString = "last day of june";
                 } elseif ($intMonth > 6 && $intMonth < 10) {
                     $strRelativeString = "last day of september";
                 } elseif ($intMonth > 9) {
                     $strRelativeString = "last day of december";
                 }
             } else {
                 if ($objPeriod->equals(class_date_period_enum::MONTH())) {
                     $strRelativeString = "last day of this month";
                 } else {
                     if ($objPeriod->equals(class_date_period_enum::WEEK())) {
                         if ($objDate->getIntDayOfWeek() == 0) {
                             $strRelativeString = "now";
                         } else {
                             //check if correct?
                             $strRelativeString = "sunday this week";
                         }
                     }
                 }
             }
         }
     }
     $objNewDate = self::calcDateRelativeFormatString($objDate, $strRelativeString);
     $objNewDate->setIntHour($objDate->getIntHour());
     $objNewDate->setIntMin($objDate->getIntMin());
     $objNewDate->setIntSec($objDate->getIntSec());
     return $objNewDate;
 }