protected static function parseEachPart(array $parts, $format)
    {
        $lastPartKey = count($parts) - 1;

        for ($p = 0; $p <= $lastPartKey; $p++) {
            $parsedPart = static::parse($parts[$p], $format);
            $numNewParts = count($parsedPart);

            if ($numNewParts > 1) {
                array_splice($parts, $p, 1, $parsedPart);
                $p += $numNewParts;
                $lastPartKey += $numNewParts - 1;
            }
        } // end of parts for loop

        return $parts;
    }