@@ 634-655 (lines=22) @@ | ||
631 | * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, |
|
632 | * depending on the value of the ReturnDateType flag |
|
633 | */ |
|
634 | public static function COUPNCD($settlement, $maturity, $frequency, $basis = 0) |
|
635 | { |
|
636 | $settlement = Functions::flattenSingleValue($settlement); |
|
637 | $maturity = Functions::flattenSingleValue($maturity); |
|
638 | $frequency = (int) Functions::flattenSingleValue($frequency); |
|
639 | $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis); |
|
640 | ||
641 | if (is_string($settlement = DateTime::getDateValue($settlement))) { |
|
642 | return Functions::VALUE(); |
|
643 | } |
|
644 | if (is_string($maturity = DateTime::getDateValue($maturity))) { |
|
645 | return Functions::VALUE(); |
|
646 | } |
|
647 | ||
648 | if (($settlement > $maturity) || |
|
649 | (!self::isValidFrequency($frequency)) || |
|
650 | (($basis < 0) || ($basis > 4))) { |
|
651 | return Functions::NAN(); |
|
652 | } |
|
653 | ||
654 | return self::couponFirstPeriodDate($settlement, $maturity, $frequency, true); |
|
655 | } |
|
656 | ||
657 | /** |
|
658 | * COUPNUM. |
|
@@ 772-793 (lines=22) @@ | ||
769 | * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, |
|
770 | * depending on the value of the ReturnDateType flag |
|
771 | */ |
|
772 | public static function COUPPCD($settlement, $maturity, $frequency, $basis = 0) |
|
773 | { |
|
774 | $settlement = Functions::flattenSingleValue($settlement); |
|
775 | $maturity = Functions::flattenSingleValue($maturity); |
|
776 | $frequency = (int) Functions::flattenSingleValue($frequency); |
|
777 | $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis); |
|
778 | ||
779 | if (is_string($settlement = DateTime::getDateValue($settlement))) { |
|
780 | return Functions::VALUE(); |
|
781 | } |
|
782 | if (is_string($maturity = DateTime::getDateValue($maturity))) { |
|
783 | return Functions::VALUE(); |
|
784 | } |
|
785 | ||
786 | if (($settlement > $maturity) || |
|
787 | (!self::isValidFrequency($frequency)) || |
|
788 | (($basis < 0) || ($basis > 4))) { |
|
789 | return Functions::NAN(); |
|
790 | } |
|
791 | ||
792 | return self::couponFirstPeriodDate($settlement, $maturity, $frequency, false); |
|
793 | } |
|
794 | ||
795 | /** |
|
796 | * CUMIPMT. |