本文整理汇总了PHP中DateTime::isLeapYear方法的典型用法代码示例。如果您正苦于以下问题:PHP DateTime::isLeapYear方法的具体用法?PHP DateTime::isLeapYear怎么用?PHP DateTime::isLeapYear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DateTime
的用法示例。
在下文中一共展示了DateTime::isLeapYear方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: AMORLINC
/**
* AMORLINC
*
* Returns the depreciation for each accounting period.
* This function is provided for the French accounting system. If an asset is purchased in
* the middle of the accounting period, the prorated depreciation is taken into account.
*
* Excel Function:
* AMORLINC(cost,purchased,firstPeriod,salvage,period,rate[,basis])
*
* @access public
* @category Financial Functions
* @param float cost The cost of the asset.
* @param mixed purchased Date of the purchase of the asset.
* @param mixed firstPeriod Date of the end of the first period.
* @param mixed salvage The salvage value at the end of the life of the asset.
* @param float period The period.
* @param float rate Rate of depreciation.
* @param integer basis The type of day count to use.
* 0 or omitted US (NASD) 30/360
* 1 Actual/actual
* 2 Actual/360
* 3 Actual/365
* 4 European 30/360
* @return float
*/
public static function AMORLINC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis = 0)
{
$cost = Functions::flattenSingleValue($cost);
$purchased = Functions::flattenSingleValue($purchased);
$firstPeriod = Functions::flattenSingleValue($firstPeriod);
$salvage = Functions::flattenSingleValue($salvage);
$period = Functions::flattenSingleValue($period);
$rate = Functions::flattenSingleValue($rate);
$basis = is_null($basis) ? 0 : (int) Functions::flattenSingleValue($basis);
$fOneRate = $cost * $rate;
$fCostDelta = $cost - $salvage;
// Note, quirky variation for leap years on the YEARFRAC for this function
$purchasedYear = DateTime::YEAR($purchased);
$yearFrac = DateTime::YEARFRAC($purchased, $firstPeriod, $basis);
if ($basis == 1 && $yearFrac < 1 && DateTime::isLeapYear($purchasedYear)) {
$yearFrac *= 365 / 366;
}
$f0Rate = $yearFrac * $rate * $cost;
$nNumOfFullPeriods = intval(($cost - $salvage - $f0Rate) / $fOneRate);
if ($period == 0) {
return $f0Rate;
} elseif ($period <= $nNumOfFullPeriods) {
return $fOneRate;
} elseif ($period == $nNumOfFullPeriods + 1) {
return $fCostDelta - $fOneRate * $nNumOfFullPeriods - $f0Rate;
} else {
return 0.0;
}
}