private static int ordinalToNumber(String ordinal) {
        ordinal = ordinal.toLowerCase();

        switch (ordinal) {
            case "first":
            case "next":
                return 1;
            case "second":
                return 2;
            case "third":
                return 3;
            case "fourth":
                return 4;
            case "fifth":
                return 5;
            case "sixth":
                return 6;
            case "seventh":
                return 7;
            case "eighth":
                return 8;
            case "ninth":
                return 9;
            case "tenth":
                return 10;
            case "eleventh":
                return 11;
            case "twelfth":
                return 12;
            case "last":
            case "previous":
                return -1;
            case "this":
                return 0;
            default:
                throw new IllegalArgumentException("Unknown ordinal: " + ordinal);
        }
    }
https://stackoverflow.com/questions/33942544/how-to-skip-weekends-while-adding-days-to-localdate-in-java-8/33943576
exts/jphp-zend-ext/src/main/java/org/develnext/jphp/zend/ext/standard/date/Adjusters.java