⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calc.class.php

📁 一个用PHP编写的
💻 PHP
📖 第 1 页 / 共 4 页
字号:
//        }//        $first_week_days %= 7;//        return (ceil((Date_Calc::daysInMonth($month, $year) - $first_week_days) / 7) + $weeks);//    } // end func weeksInMonth////    /**//     * Find the day of the week for the first of the month of given date.//     *//     * @param string month in format MM, default is current local month//     * @param string year in format CCYY, default is current local year//     *//     * @access public//     *//     * @return int number of weekday for the first day, 0=Sunday//     */////    function firstOfMonthWeekday($month='',$year='')//    {//        if (empty($year)) {//            $year = Date_Calc::dateNow('%Y');//        }//        if (empty($month)) {//            $month = Date_Calc::dateNow('%m');//        }////        return(Date_Calc::dayOfWeek('01',$month,$year));//    } // end func firstOfMonthWeekday////    /**//     * Return date of first day of month of given date.//     *//     * @param string month in format MM, default is current local month//     * @param string year in format CCYY, default is current local year//     * @param string format for returned date//     *//     * @access public//     *//     * @return string date in given format//     */////    function beginOfMonth($month='',$year='',$format='%Y%m%d')//    {//        if (empty($year)) {//            $year = Date_Calc::dateNow('%Y');//        }//        if (empty($month)) {//            $month = Date_Calc::dateNow('%m');//        }////        return(Date_Calc::dateFormat('01',$month,$year,$format));//    } // end of func beginOfMonth////    /**//     * Find the month day of the beginning of week for given date,//     * using DATE_CALC_BEGIN_WEEKDAY. (can return weekday of prev month.)//     *//     * @param string day in format DD, default is current local day//     * @param string month in format MM, default is current local month//     * @param string year in format CCYY, default is current local year//     * @param string format for returned date//     *//     * @access public//     *//     * @return string date in given format//     */////    function beginOfWeek($day='',$month='',$year='',$format='%Y%m%d')//    {//        if (empty($year)) {//            $year = Date_Calc::dateNow('%Y');//        }//        if (empty($month)) {//            $month = Date_Calc::dateNow('%m');//        }//        if (empty($day)) {//            $day = Date_Calc::dateNow('%d');//        }////        $this_weekday = Date_Calc::dayOfWeek($day,$month,$year);////        $interval = (7 - DATE_CALC_BEGIN_WEEKDAY + $this_weekday) % 7;////        return(Date_Calc::daysToDate(Date_Calc::dateToDays($day,$month,$year) - $interval,$format));//    } // end of func beginOfWeek////    /**//     * Find the month day of the end of week for given date,//     * using DATE_CALC_BEGIN_WEEKDAY. (can return weekday//     * of following month.)//     *//     * @param string day in format DD, default is current local day//     * @param string month in format MM, default is current local month//     * @param string year in format CCYY, default is current local year//     * @param string format for returned date//     *//     * @access public//     *//     * @return string date in given format//     */////    function endOfWeek($day='',$month='',$year='',$format='%Y%m%d')//    {//        if (empty($year)) {//            $year = Date_Calc::dateNow('%Y');//        }//        if (empty($month)) {//            $month = Date_Calc::dateNow('%m');//        }//        if (empty($day)) {//            $day = Date_Calc::dateNow('%d');//        }//////        $this_weekday = Date_Calc::dayOfWeek($day,$month,$year);////        $interval = (6 + DATE_CALC_BEGIN_WEEKDAY - $this_weekday) % 7;////        return(Date_Calc::daysToDate(Date_Calc::dateToDays($day,$month,$year) + $interval,$format));//    } // end func endOfWeek////    /**//     * Find the month day of the beginning of week after given date,//     * using DATE_CALC_BEGIN_WEEKDAY. (can return weekday of prev month.)//     *//     * @param string day in format DD, default is current local day//     * @param string month in format MM, default is current local month//     * @param string year in format CCYY, default is current local year//     * @param string format for returned date//     *//     * @access public//     *//     * @return string date in given format//     */////    function beginOfNextWeek($day='',$month='',$year='',$format='%Y%m%d')//    {//        if (empty($year)) {//            $year = Date_Calc::dateNow("%Y");//        }//        if (empty($month)) {//            $month = Date_Calc::dateNow("%m");//        }//        if (empty($day)) {//            $day = Date_Calc::dateNow("%d");//        }////        $date = Date_Calc::daysToDate(//                    Date_Calc::dateToDays($day+7,$month,$year),"%Y%m%d"//                );////        $next_week_year = substr($date,0,4);//        $next_week_month = substr($date,4,2);//        $next_week_day = substr($date,6,2);////        return Date_Calc::beginOfWeek(//                            $next_week_day,$next_week_month,$next_week_year,//                            $format//                        );////        $date = Date_Calc::daysToDate(Date_Calc::dateToDays($day+7,$month,$year),"%Y%m%d");//    } // end func beginOfNextWeek////    /**//     * Find the month day of the beginning of week before given date,//     * using DATE_CALC_BEGIN_WEEKDAY. (can return weekday of prev month.)//     *//     * @param string day in format DD, default is current local day//     * @param string month in format MM, default is current local month//     * @param string year in format CCYY, default is current local year//     * @param string format for returned date//     *//     * @access public//     *//     * @return string date in given format//     */////    function beginOfPrevWeek($day='',$month='',$year='',$format='%Y%m%d')//    {//        if (empty($year)) {//            $year = Date_Calc::dateNow("%Y");//        }//        if (empty($month)) {//            $month = Date_Calc::dateNow("%m");//        }//        if (empty($day)) {//            $day = Date_Calc::dateNow("%d");//        }////        $date = Date_Calc::daysToDate(//                        Date_Calc::dateToDays($day-7,$month,$year),"%Y%m%d"//                    );////        $prev_week_year = substr($date,0,4);//        $prev_week_month = substr($date,4,2);//        $prev_week_day = substr($date,6,2);////        return Date_Calc::beginOfWeek($prev_week_day,$prev_week_month,$prev_week_year,$format);//////        $date = Date_Calc::daysToDate(Date_Calc::dateToDays($day-7,$month,$year),"%Y%m%d");//    } // end func beginOfPrevWeek////    /**//     * Return an array with days in week//     *//     * @param string day in format DD, default is current local day//     * @param string month in format MM, default is current local month//     * @param string year in format CCYY, default is current local year//     * @param string format for returned date//     *//     * @access public//     *//     * @return array $week[$weekday]//     */////    function getCalendarWeek($day='',$month='',$year='',$format='%Y%m%d')//    {//        if (empty($year)) {//            $year = Date_Calc::dateNow('%Y');//        }//        if (empty($month)) {//            $month = Date_Calc::dateNow('%m');//        }//        if (empty($day)) {//            $day = Date_Calc::dateNow('%d');//        }////        $week_array = array();////        // date for the column of week////        $curr_day = Date_Calc::beginOfWeek($day,$month,$year,'%E');////        for($counter=0; $counter <= 6; $counter++) {//            $week_array[$counter] = Date_Calc::daysToDate($curr_day,$format);//            $curr_day++;//        }////        return $week_array;//    } // end func getCalendarWeek////    /**//     * Return a set of arrays to construct a calendar month for//     * the given date.//     *//     * @param string month in format MM, default is current local month//     * @param string year in format CCYY, default is current local year//     * @param string format for returned date//     *//     * @access public//     *//     * @return array $month[$row][$col]//     */////    function getCalendarMonth($month='',$year='',$format='%Y%m%d')//    {//        if (empty($year)) {//            $year = Date_Calc::dateNow('%Y');//        }//        if (empty($month)) {//            $month = Date_Calc::dateNow('%m');//        }////        $month_array = array();////        // date for the first row, first column of calendar month//        if (DATE_CALC_BEGIN_WEEKDAY == 1) {//            if (Date_Calc::firstOfMonthWeekday($month,$year) == 0) {//                $curr_day = Date_Calc::dateToDays('01',$month,$year) - 6;//            } else {//                $curr_day = Date_Calc::dateToDays('01',$month,$year)//                    - Date_Calc::firstOfMonthWeekday($month,$year) + 1;//            }//        } else {//            $curr_day = (Date_Calc::dateToDays('01',$month,$year)//                - Date_Calc::firstOfMonthWeekday($month,$year));//        }////        // number of days in this month//        $daysInMonth = Date_Calc::daysInMonth($month,$year);////        $weeksInMonth = Date_Calc::weeksInMonth($month,$year);//        for($row_counter=0; $row_counter < $weeksInMonth; $row_counter++) {//            for($column_counter=0; $column_counter <= 6; $column_counter++) {//                $month_array[$row_counter][$column_counter] =//                    Date_Calc::daysToDate($curr_day,$format);//                $curr_day++;//            }//        }////        return $month_array;//    } // end func getCalendarMonth////    /**//     * Return a set of arrays to construct a calendar year for//     * the given date.//     *//     * @param string year in format CCYY, default current local year//     * @param string format for returned date//     *//     * @access public//     *//     * @return array $year[$month][$row][$col]//     */////    function getCalendarYear($year='',$format='%Y%m%d')//    {//        if (empty($year)) {//            $year = Date_Calc::dateNow('%Y');//        }////        $year_array = array();////        for($curr_month=0; $curr_month <=11; $curr_month++) {//            $year_array[$curr_month] =//                Date_Calc::getCalendarMonth(sprintf('%02d',$curr_month+1),$year,$format);//        }////        return $year_array;//    } // end func getCalendarYear//    /**     * Converts a date to number of days since a     * distant unspecified epoch.     *     * @param string day in format DD     * @param string month in format MM     * @param string year in format CCYY     *     * @access public     *     * @return integer number of days     */    function dateToDays($day,$month,$year)    {        $century = (int) substr($year,0,2);        $year = (int) substr($year,2,2);        if ($month > 2) {            $month -= 3;        } else {            $month += 9;            if ($year) {                $year--;            } else {                $year = 99;                $century --;            }        }        return (floor(( 146097 * $century) / 4 ) +            floor(( 1461 * $year) / 4 ) +            floor(( 153 * $month + 2) / 5 ) +            $day + 1721119);    }     /**     * Converts number of days to a distant unspecified epoch.     *     * @param int number of days     * @param string format for returned date     *     * @access public     *     * @return string date in specified format     */    function daysToDate($days,$format='%Y%m%d')    {        $days       -=  1721119;        $century    =   floor(( 4 * $days - 1) / 146097);        $days       =   floor(4 * $days - 1 - 146097 * $century);        $day        =   floor($days / 4);        $year       =   floor(( 4 * $day +  3) / 1461);        $day        =   floor(4 * $day +  3 - 1461 * $year);        $day        =   floor(($day +  4) / 4);        $month      =   floor(( 5 * $day - 3) / 153);        $day        =   floor(5 * $day - 3 - 153 * $month);        $day        =   floor(($day +  5) /  5);        if ($month < 10) {            $month +=3;        } else {            $month -=9;            if ($year++ == 99) {                $year = 0;                $century++;            }        }        $century = sprintf('%02d',$century);        $year = sprintf('%02d',$year);        return(Date_Calc::dateFormat($day,$month,$century.$year,$format));    }//    /**//     * Calculates the date of the Nth weekday of the month,//     * such as the second Saturday of January 2000.//     *//     * @param string occurance: 1=first, 2=second, 3=third, etc.//     * @param string dayOfWeek: 0=Sunday, 1=Monday, etc.//     * @param string month in format MM//     * @param string year in format CCYY//     * @param string format for returned date//     *//     * @access public//     *//     * @return string date in given format//     */////    function NWeekdayOfMonth($occurance,$dayOfWeek,$month,$year,$format='%Y%m%d')//    {//        $year = sprintf('%04d',$year);//        $month = sprintf('%02d',$month);////        $DOW1day = sprintf('%02d',(($occurance - 1) * 7 + 1));//        $DOW1 = Date_Calc::dayOfWeek($DOW1day,$month,$year);////        $wdate = ($occurance - 1) * 7 + 1 +//                (7 + $dayOfWeek - $DOW1) % 7;////        if ( $wdate > Date_Calc::daysInMonth($month,$year)) {//            return -1;//        } else {//            return(Date_Calc::dateFormat($wdate,$month,$year,$format));//        }//    } // end func NWeekdayOfMonth//    /**     *  Formats the date in the given format, much like

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -