📄 calc.class.php
字号:
// function endOfPrevMonth($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');// }//// if ($month > 1) {// $month--;// } else {// $year--;// $month=12;// }//// $day = Date_Calc::daysInMonth($month,$year);//// return Date_Calc::dateFormat($day,$month,$year,$format);// } // end func endOfPrevMonth//// /**// * Returns date of the next weekday of given date,// * skipping from Friday to Monday.// *// * @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 nextWeekday($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');// }//// $days = Date_Calc::dateToDays($day,$month,$year);//// if (Date_Calc::dayOfWeek($day,$month,$year) == 5) {// $days += 3;// } elseif (Date_Calc::dayOfWeek($day,$month,$year) == 6) {// $days += 2;// } else {// $days += 1;// }//// return(Date_Calc::daysToDate($days,$format));// } // end func nextWeekday//// /**// * Returns date of the previous weekday,// * skipping from Monday to Friday.// *// * @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 prevWeekday($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');// }//// $days = Date_Calc::dateToDays($day,$month,$year);//// if (Date_Calc::dayOfWeek($day,$month,$year) == 1) {// $days -= 3;// } elseif (Date_Calc::dayOfWeek($day,$month,$year) == 0) {// $days -= 2;// } else {// $days -= 1;// }//// return(Date_Calc::daysToDate($days,$format));// } // end func prevWeekday//// /**// * Returns date of the next specific day of the week// * from the given date.// *// * @param int day of week, 0=Sunday// * @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 boolean onOrAfter if true and days are same, returns current day// * @param string format for returned date// *// * @access public// *// * @return string date in given format// *///// function nextDayOfWeek($dow,$day='',$month='',$year='',$format='%Y%m%d',$onOrAfter=false)// {// if (empty($year)) {// $year = Date_Calc::dateNow('%Y');// }// if (empty($month)) {// $month = Date_Calc::dateNow('%m');// }// if (empty($day)) {// $day = Date_Calc::dateNow('%d');// }//// $days = Date_Calc::dateToDays($day,$month,$year);// $curr_weekday = Date_Calc::dayOfWeek($day,$month,$year);//// if ($curr_weekday == $dow) {// if (!$onOrAfter) {// $days += 7;// }// }// elseif ($curr_weekday > $dow) {// $days += 7 - ( $curr_weekday - $dow );// } else {// $days += $dow - $curr_weekday;// }//// return(Date_Calc::daysToDate($days,$format));// } // end func nextDayOfWeek//// /**// * Returns date of the previous specific day of the week// * from the given date.// *// * @param int day of week, 0=Sunday// * @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 boolean onOrBefore if true and days are same, returns current day// * @param string format for returned date// *// * @access public// *// * @return string date in given format// *///// function prevDayOfWeek($dow,$day='',$month='',$year='',$format='%Y%m%d',$onOrBefore=false)// {// if (empty($year)) {// $year = Date_Calc::dateNow('%Y');// }// if (empty($month)) {// $month = Date_Calc::dateNow('%m');// }// if (empty($day)) {// $day = Date_Calc::dateNow('%d');// }//// $days = Date_Calc::dateToDays($day,$month,$year);// $curr_weekday = Date_Calc::dayOfWeek($day,$month,$year);//// if ($curr_weekday == $dow) {// if (!$onOrBefore) {// $days -= 7;// }// }// elseif ($curr_weekday < $dow) {// $days -= 7 - ( $dow - $curr_weekday );// } else {// $days -= $curr_weekday - $dow;// }//// return(Date_Calc::daysToDate($days,$format));// } // end func prevDayOfWeek//// /**// * Returns date of the next specific day of the week// * on or after the given date.// *// * @param int day of week, 0=Sunday// * @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 nextDayOfWeekOnOrAfter($dow,$day='',$month='',$year='',$format='%Y%m%d')// {// return(Date_Calc::nextDayOfWeek($dow,$day,$month,$year,$format,true));// } // end func nextDayOfWeekOnOrAfter//// /**// * Returns date of the previous specific day of the week// * on or before the given date.// *// * @param int day of week, 0=Sunday// * @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 prevDayOfWeekOnOrBefore($dow,$day='',$month='',$year='',$format='%Y%m%d')// {// return(Date_Calc::prevDayOfWeek($dow,$day,$month,$year,$format,true));// } // end func prevDayOfWeekOnOrAfter// /** * Returns date of day after given date. * * @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 nextDay($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'); } $days = Date_Calc::dateToDays($day,$month,$year); return(Date_Calc::daysToDate($days + 1,$format)); }// /**// * Returns date of day before given date.// *// * @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 prevDay($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'); } $days = Date_Calc::dateToDays($day,$month,$year); return(Date_Calc::daysToDate($days - 1,$format)); } // end func prevDay//// /**// * Sets century for 2 digit year.// * 51-99 is 19, else 20// *// * @param string 2 digit year// *// * @access public// *// * @return string 4 digit year// *///// function defaultCentury($year)// {// if (strlen($year) == 1) {// $year = "0$year";// }// if ($year > 50) {// return( "19$year" );// } else {// return( "20$year" );// }// } // end func defaultCentury//// /**// * Returns number of days between two given dates.// *// * @param string $day1 day in format DD// * @param string $month1 month in format MM// * @param string $year1 year in format CCYY// * @param string $day2 day in format DD// * @param string $month2 month in format MM// * @param string $year2 year in format CCYY// *// * @access public// *// * @return int absolute number of days between dates,// * -1 if there is an error.// *///// function dateDiff($day1,$month1,$year1,$day2,$month2,$year2)// {// if (!Date_Calc::isValidDate($day1,$month1,$year1)) {// return -1;// }// if (!Date_Calc::isValidDate($day2,$month2,$year2)) {// return -1;// }//// return(abs((Date_Calc::dateToDays($day1,$month1,$year1))// - (Date_Calc::dateToDays($day2,$month2,$year2))));// } // end func dateDiff//// /**// * Compares two dates// *// * @param string $day1 day in format DD// * @param string $month1 month in format MM// * @param string $year1 year in format CCYY// * @param string $day2 day in format DD// * @param string $month2 month in format MM// * @param string $year2 year in format CCYY// *// * @access public// * @return int 0 on equality, 1 if date 1 is greater, -1 if smaller// */// function compareDates($day1,$month1,$year1,$day2,$month2,$year2)// {// $ndays1 = Date_Calc::dateToDays($day1, $month1, $year1);// $ndays2 = Date_Calc::dateToDays($day2, $month2, $year2);// if ($ndays1 == $ndays2) {// return 0;// }// return ($ndays1 > $ndays2) ? 1 : -1;// } // end func compareDates//// /**// * Find the number of days in the given month.// *// * @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 days// */// function daysInMonth($month='',$year='') { if (empty($year)) { $year = Date_Calc::dateNow('%Y'); } if (empty($month)) { $month = Date_Calc::dateNow('%m'); } if ($year == 1582 && $month == 10) { return 21; // October 1582 only had 1st-4th and 15th-31st } if ($month == 2) { if (Date_Calc::isLeapYear($year)) { return 29; } else { return 28; } } elseif ($month == 4 or $month == 6 or $month == 9 or $month == 11) { return 30; } else { return 31; } } // end func daysInMonth//// /**// * Returns the number of rows on a calendar month. Useful for// * determining the number of rows when displaying a typical// * month calendar.// *// * @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 weeks// *///// function weeksInMonth($month='',$year='')// {// if (empty($year)) {// $year = Date_Calc::dateNow('%Y');// }// if (empty($month)) {// $month = Date_Calc::dateNow('%m');// }// $FDOM = Date_Calc::firstOfMonthWeekday($month, $year);// if (DATE_CALC_BEGIN_WEEKDAY==1 && $FDOM==0) {// $first_week_days = 7 - $FDOM + DATE_CALC_BEGIN_WEEKDAY;// $weeks = 1;// } elseif (DATE_CALC_BEGIN_WEEKDAY==0 && $FDOM == 6) {// $first_week_days = 7 - $FDOM + DATE_CALC_BEGIN_WEEKDAY;// $weeks = 1;// } else {// $first_week_days = DATE_CALC_BEGIN_WEEKDAY - $FDOM;// $weeks = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -