public Object formatSasDate()

in src/main/java/com/epam/parso/date/SasTemporalFormatter.java [58:89]


    public Object formatSasDate(Double sasDays, OutputDateType dateFormatType,
                                String sasFormatName, int width, int precision) {

        if (dateFormatType == SAS_VALUE) {
            return sasDays;
        } else if (sasDays == null || Double.isNaN(sasDays)) {
            if (dateFormatType == SAS_FORMAT_EXPERIMENTAL || dateFormatType == SAS_FORMAT_TRIM_EXPERIMENTAL) {
                return ".";
            } else {
                return null;
            }
        }

        sasDays = sasLeapDaysFix(sasDays);

        switch (dateFormatType) {
            case EPOCH_SECONDS:
                return sasDaysToEpochSeconds(sasDays);
            case JAVA_TEMPORAL:
                return sasDaysToLocalDate(sasDays);
            case SAS_FORMAT_EXPERIMENTAL:
            case SAS_FORMAT_TRIM_EXPERIMENTAL:
                boolean trim = dateFormatType == SAS_FORMAT_TRIM_EXPERIMENTAL;
                return dateFormatFunctions.computeIfAbsent(sasFormatName + width + "." + precision,
                        k -> SasDateFormat.valueOf(sasFormatName).getFormatFunction(width, precision,
                                trim)
                ).apply(sasDays);
            case JAVA_DATE_LEGACY:
            default:
                return sasDaysToDate(sasDays);
        }
    }