@@ 650-671 (lines=22) @@ | ||
647 | * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, |
|
648 | * depending on the value of the ReturnDateType flag |
|
649 | */ |
|
650 | public static function COUPNCD($settlement, $maturity, $frequency, $basis = 0) |
|
651 | { |
|
652 | $settlement = Functions::flattenSingleValue($settlement); |
|
653 | $maturity = Functions::flattenSingleValue($maturity); |
|
654 | $frequency = (int) Functions::flattenSingleValue($frequency); |
|
655 | $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis); |
|
656 | ||
657 | if (is_string($settlement = DateTime::getDateValue($settlement))) { |
|
658 | return Functions::VALUE(); |
|
659 | } |
|
660 | if (is_string($maturity = DateTime::getDateValue($maturity))) { |
|
661 | return Functions::VALUE(); |
|
662 | } |
|
663 | ||
664 | if (($settlement > $maturity) || |
|
665 | (!self::isValidFrequency($frequency)) || |
|
666 | (($basis < 0) || ($basis > 4))) { |
|
667 | return Functions::NAN(); |
|
668 | } |
|
669 | ||
670 | return self::couponFirstPeriodDate($settlement, $maturity, $frequency, true); |
|
671 | } |
|
672 | ||
673 | /** |
|
674 | * COUPNUM. |
|
@@ 788-809 (lines=22) @@ | ||
785 | * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, |
|
786 | * depending on the value of the ReturnDateType flag |
|
787 | */ |
|
788 | public static function COUPPCD($settlement, $maturity, $frequency, $basis = 0) |
|
789 | { |
|
790 | $settlement = Functions::flattenSingleValue($settlement); |
|
791 | $maturity = Functions::flattenSingleValue($maturity); |
|
792 | $frequency = (int) Functions::flattenSingleValue($frequency); |
|
793 | $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis); |
|
794 | ||
795 | if (is_string($settlement = DateTime::getDateValue($settlement))) { |
|
796 | return Functions::VALUE(); |
|
797 | } |
|
798 | if (is_string($maturity = DateTime::getDateValue($maturity))) { |
|
799 | return Functions::VALUE(); |
|
800 | } |
|
801 | ||
802 | if (($settlement > $maturity) || |
|
803 | (!self::isValidFrequency($frequency)) || |
|
804 | (($basis < 0) || ($basis > 4))) { |
|
805 | return Functions::NAN(); |
|
806 | } |
|
807 | ||
808 | return self::couponFirstPeriodDate($settlement, $maturity, $frequency, false); |
|
809 | } |
|
810 | ||
811 | /** |
|
812 | * CUMIPMT. |