Это моя вторая самостоятельная программа. Пока что я на начале 10 - го уровня. Вроде все работает, но мне интеренно, все ли у меня норм с пониманием кода другими.
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println();
        System.out.println("-------------------------------------------------------------------------");
        System.out.println("Вас приветствует программа \"Таймер до дня рождения\"! \uD83C\uDF82");
        System.out.println("Автор: ©DreidKare");
        System.out.println("Если Вы обнаружили баг / неточность или хотите предложить улучшение \nфункционала, свяжитесь со мной в Telegram. Ник в конце программы.");
        System.out.println("-------------------------------------------------------------------------");
        System.out.println();
        System.out.println();
        System.out.println("Введите ваше имя. Поддерживается любой формат (Андрей/Andrey/lilAndrey/андрей/andrey/АнДрЕй и так далее).");
        String username = scanner.nextLine();
        System.out.println("Приветствую, " + username + ", теперь введи свой год рождения. Введи в формате '1999 / 2003 / 2009'.");
        int year = scanner.nextInt();
        System.out.println("Теперь уточним. Какой сейчас год? Введи в формате '2012 / 2015 / 2020'");
        int yearnow = scanner.nextInt();
        System.out.println("И еще немножко уточнений. Какой сейчас месяц? Введи в формате 'Январь / январь - Декабрь / декабрь'.");
        scanner.nextLine();
        String monthnow = scanner.nextLine();
        if (monthnow.equalsIgnoreCase("Январь")|| monthnow.equalsIgnoreCase("Февраль")||monthnow.equalsIgnoreCase("Март")||monthnow.equalsIgnoreCase("Апрель")||monthnow.equalsIgnoreCase("Май")||monthnow.equalsIgnoreCase("Июнь")) {
            System.out.println("Отлично, сейчас 1 - е полугодие " + yearnow + " года.");
        } else if  (monthnow.equalsIgnoreCase("Июль")||monthnow.equalsIgnoreCase("Август")||monthnow.equalsIgnoreCase("Сентябрь")||monthnow.equalsIgnoreCase("Октябрь")||monthnow.equalsIgnoreCase("Ноябрь")||monthnow.equalsIgnoreCase("Декабрь")) {
            System.out.println("Отлично, сейчас 2 - е полугодие." + yearnow + " года.");
        } else {
            System.out.println("Похоже, что такого месяца не существует! Перезапусти программу и введи месяц в формате 'Январь / январь - Декабрь / декабрь'. \nЕсли вы уверены, что ввели все правильно, а программа работает неверно, свяжитесь со мной в Telegram.");
            System.exit(0);
        }
        System.out.println();
        System.out.println ("И еще чуть-чуть уточнений. Какое сегодня число? Введи в формате '1 - 31'.");
        int day = scanner.nextInt();
        if (day > 0 && day <= 31) {
            System.out.println("Итак, текущая дата: " + monthnow + ", " + day + " (" + yearnow + " года)");
        } else {
            System.out.println("Такого дня не существует! Перезапусти программу и введи день в формате '1 - 31' \nЕсли вы уверены, что ввели все правильно, а программа работает неверно, свяжитесь со мной в Telegram.");
            System.exit(0);
        }
        int monthnowint = 0;
        if (monthnow.equalsIgnoreCase("Январь"))
            monthnowint = 1;
        if (monthnow.equalsIgnoreCase("Февраль"))
            monthnowint = 2;
        if (monthnow.equalsIgnoreCase("Март"))
            monthnowint = 3;
        if (monthnow.equalsIgnoreCase("Апрель"))
            monthnowint = 4;
        if (monthnow.equalsIgnoreCase("Май"))
            monthnowint = 5;
        if (monthnow.equalsIgnoreCase("Июнь"))
            monthnowint = 6;
        if (monthnow.equalsIgnoreCase("Июль"))
            monthnowint = 7;
        if (monthnow.equalsIgnoreCase("Август"))
            monthnowint = 8;
        if (monthnow.equalsIgnoreCase("Сентябрь"))
            monthnowint = 9;
        if (monthnow.equalsIgnoreCase("Октябрь"))
            monthnowint = 10;
        if (monthnow.equalsIgnoreCase("Ноябрь"))
            monthnowint = 11;
        if (monthnow.equalsIgnoreCase("Декабрь"))
            monthnowint = 12;
        System.out.println();
        System.out.println("Ваш возраст: " + (yearnow - year - 1) + " - " + (yearnow - year) + " лет.");
        System.out.println("Точный возраст мы уточним чуть позже.");
        System.out.println();
        System.out.println("А теперь, " + username + ", давай разбираться подробнее.");
        System.out.println("-------------------------------------------------------------------------");
        System.out.println("В каком месяце у тебя день рождения? Введи в формате: 'Январь - Декабрь'.");
        scanner.nextLine();
        String month = scanner.nextLine();
        if (month.equalsIgnoreCase("Январь")|| month.equalsIgnoreCase("Февраль")||month.equalsIgnoreCase("Март")||month.equalsIgnoreCase("Апрель")||month.equalsIgnoreCase("Май")||month.equalsIgnoreCase("Июнь")) {
            System.out.println("Отлично, твой день рождения в 1 - м полугодии.");
        } else if  (month.equalsIgnoreCase("Июль")||month.equalsIgnoreCase("Август")||month.equalsIgnoreCase("Сентябрь")||month.equalsIgnoreCase("Октябрь")||month.equalsIgnoreCase("Ноябрь")||month.equalsIgnoreCase("Декабрь")) {
                System.out.println("Отлично, твой день рождения во 2 - м полугодии.");
            } else {
            System.out.println("Похоже, что такого месяца не существует! Перезапусти программу и введи месяц в формате 'Декабрь' / 'декабрь' \nЕсли вы уверены, что ввели все правильно, а программа работает не правильно, свяжитесь со мной в Telegram.");
            System.exit(0);
        }
        System.out.println("Месяц твоего дня рождения: " + month + ".");
        System.out.println();
        System.out.println("Теперь введи число твоего дня рождения.");
        int daybirthday = scanner.nextInt();
        System.out.println();
        System.out.println("---------------------------------ИТОГ------------------------------------");
        System.out.println("Итак, " + username + ", твой день рождения: " + month + ", " + daybirthday + " (" + year + " года.)");
            int monthbirthdayint = 0;
            if (month.equalsIgnoreCase("Январь"))
                monthbirthdayint = 1;
            if (month.equalsIgnoreCase("Февраль"))
                monthbirthdayint = 2;
            if (month.equalsIgnoreCase("Март"))
                monthbirthdayint = 3;
            if (month.equalsIgnoreCase("Апрель"))
                monthbirthdayint = 4;
            if (month.equalsIgnoreCase("Май"))
                monthbirthdayint = 5;
            if (month.equalsIgnoreCase("Июнь"))
                monthbirthdayint = 6;
            if (month.equalsIgnoreCase("Июль"))
                monthbirthdayint = 7;
            if (month.equalsIgnoreCase("Август"))
                monthbirthdayint = 8;
            if (month.equalsIgnoreCase("Сентябрь"))
                monthbirthdayint = 9;
            if (month.equalsIgnoreCase("Октябрь"))
                monthbirthdayint = 10;
            if (month.equalsIgnoreCase("Ноябрь"))
                monthbirthdayint = 11;
            if (month.equalsIgnoreCase("Декабрь"))
                monthbirthdayint = 12;

            if (monthbirthdayint == monthnowint && daybirthday == day) {
                System.out.println();
            } else if (monthbirthdayint == monthnowint) {
                System.out.println("Хмммм... Сейчас " + monthnow.toLowerCase() + "... А месяц твоего дня рождения? Тоже " + month.toLowerCase() + ".");
                System.out.println("Получается, твой день рождения уже в этом месяце! Поздравляем!");
                System.out.println();
                System.out.println("Осталось(ся) всего " + (daybirthday - day) + " дней(ня)(нь)! Совсем немного!");
            } else if (monthbirthdayint > monthnowint) {
                System.out.println("До твоего следующего дня рождения осталось: " + (monthbirthdayint - monthnowint) + " месяц(а)(ев).");
            } else if (monthbirthdayint < monthnowint) {
                System.out.println("До твоего следующего дня рождения осталось: " + (12 - (monthnowint - monthbirthdayint)) + " месяц(а)(ев).");
            }
            System.out.println("Теперь давай более точно узнаем сколько тебе лет.");
            if (monthnowint < monthbirthdayint) {
                System.out.println();
                System.out.println("Получается, тебе " + (yearnow - year - 1) + " лет.");
            } else if (monthnowint == monthbirthdayint) {
                if (day < daybirthday) {
                    System.out.println("Получается, тебе почти " + (yearnow - year) + " лет.");
                } else if (day == daybirthday) {
                    System.out.println("Так-так.. Сейчас " + monthnow + ", " + day + " ... А твой день рождения: " + month + ", " + daybirthday + ".");
                    System.out.println("Выходит, ты сегодня именинник!");
                    System.out.println("-------------------------------------------------------------------------");
                    System.out.println("Тебе исполняется " + (yearnow - year) + " лет!");
                    System.out.println();
                    System.out.println(username + ", поздравляем тебя с днем рождения! Всего самого наилучшего!");
                    System.out.println("\uD83C\uDF82 \uD83C\uDF82 \uD83C\uDF82 \uD83C\uDF82 \uD83C\uDF82 \uD83C\uDF82");
                }
            } else if (monthnowint > monthbirthdayint) {
                System.out.println();
                System.out.println("Получается, тебе " + (yearnow - year) + " лет.");
            }
        System.out.println("----------------------------ДОПОЛНИТЕЛЬНО--------------------------------");
        System.out.println();
            System.out.println("Telegram: ©DreidKare");

        }
    }