Ignore:
Timestamp:
2013/02/20 21:20:34 (13 years ago)
Author:
pineray
Message:

#2155 pageクラスからdtb_holidayテーブルを直接指定している箇所をなくす

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/SC_Date.php

    r22567 r22576  
    2929    var $day; 
    3030    var $end_year; 
     31 
     32    public static $arrHoliday = NULL; 
     33    public static $arrRegularHoliday = NULL; 
    3134 
    3235    // コンストラクタ 
     
    185188        return $minutes_array; 
    186189    } 
     190 
     191    /** 
     192     * 休日の判定. 
     193     *  
     194     * @param integer $year 
     195     * @param integer $month 
     196     * @param integer $day 
     197     * @return boolean 休日の場合はtrue 
     198     */ 
     199    public function isHoliday($year, $month, $day) 
     200    { 
     201        is_null(SC_Date_Ex::$arrHoliday) and $this->setArrHoliday(); 
     202        is_null(SC_Date_Ex::$arrRegularHoliday) and $this->setRegularHoliday(); 
     203 
     204        if (!empty(SC_Date_Ex::$arrHoliday[$month])) { 
     205            if (in_array($day, SC_Date_Ex::$arrHoliday[$month])) { 
     206                return true; 
     207            } 
     208        } 
     209        if (!empty(SC_Date_Ex::$arrRegularHoliday)) { 
     210            $day = date('w', mktime(0,0,0 ,$month, $day, $year)); 
     211            if (in_array($day, SC_Date_Ex::$arrRegularHoliday)) { 
     212                return true; 
     213            } 
     214        } 
     215        return false; 
     216    } 
     217 
     218    /** 
     219     * 休日情報をスタティック変数にセット. 
     220     *  
     221     * @return void 
     222     */ 
     223    private function setArrHoliday() 
     224    { 
     225        $objHoliday = new SC_Helper_Holiday_Ex(); 
     226        $holiday = $objHoliday->getList(); 
     227        $arrHoliday = array(); 
     228        foreach ($holiday AS $val) { 
     229            $arrHoliday[$val['month']][] = $val['day']; 
     230        } 
     231        SC_Date_Ex::$arrHoliday = $arrHoliday; 
     232    } 
     233 
     234    /** 
     235     * 定休日情報をスタティック変数にセット. 
     236     *  
     237     * @return void 
     238     */ 
     239    private function setRegularHoliday() 
     240    { 
     241        $arrInfo = SC_Helper_DB_Ex::sfGetBasisData(); 
     242        SC_Date_Ex::$arrRegularHoliday = explode('|', $arrInfo['regular_holiday_ids']); 
     243    } 
    187244} 
Note: See TracChangeset for help on using the changeset viewer.