private static int monthNameToNumber(String month) {
        month = month.toLowerCase();

        switch (month) {
            case "january":
            case "jan":
            case "i":
                return 1;
            case "february":
            case "feb":
            case "ii":
                return 2;
            case "march":
            case "mar":
            case "iii":
                return 3;
            case "april":
            case "apr":
            case "iv":
                return 4;
            case "may":
            case "v":
                return 5;
            case "june":
            case "jun":
            case "vi":
                return 6;
            case "july":
            case "jul":
            case "vii":
                return 7;
            case "august":
            case "aug":
            case "viii":
                return 8;
            case "september":
            case "sep":
            case "ix":
                return 9;
            case "october":
            case "oct":
            case "x":
                return 10;
            case "november":
            case "nov":
            case "xi":
                return 11;
            case "december":
            case "dec":
            case "xii":
                return 12;
            default:
                throw new IllegalArgumentException("Not a month: " + month);
        }
    }
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