Code Duplication    Length = 22-22 lines in 2 locations

src/PhpSpreadsheet/Calculation/Financial.php 2 locations

@@ 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.