import java.time.YearMonth;

public class DaysInTheMonth {
public static void main(String[] args) {
// test for negatives
getDaysInMonth(-1, 2020);
getDaysInMonth(1, -2020);
System.out.println();

// loop every month from 2018 to 2025
int x = 2018;
int y = 1;
while (x < 2026) {
y = 1;
while (y < 13) {
getDaysInMonth(y, x);
y++;
}
System.out.println();
x++;
}
}


public static void getDaysInMonth(int month, int year) {
if ((month < 0) || (year < 0)) {
System.out.println(month + " " + year + " does not exist");
} else {
YearMonth yearMonthObject = YearMonth.of(year, month);
int daysInMonth = yearMonthObject.lengthOfMonth();
System.out.println(getMonth(month) + " " + year + " has " + daysInMonth + " days");
}
}


public static String getMonth(int month) {
return switch (month) {
case 1 -> "January";
case 2 -> "February";
case 3 -> "March";
case 4 -> "April";
case 5 -> "May";
case 6 -> "June";
case 7 -> "July";
case 8 -> "August";
case 9 -> "September";
case 10 -> "October";
case 11 -> "November";
case 12 -> "December";
default -> "None";
};
}
}
C:\Users\netadmin\.jdks\openjdk-23.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.2.4\lib\idea_rt.jar=64136:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.2.4\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\netadmin\IdeaProjects\DaysInTheMonth\out\production\DaysInTheMonth DaysInTheMonth
-1 2020 does not exist
1 -2020 does not exist

January 2018 has 31 days
February 2018 has 28 days
March 2018 has 31 days
April 2018 has 30 days
May 2018 has 31 days
June 2018 has 30 days
July 2018 has 31 days
August 2018 has 31 days
September 2018 has 30 days
October 2018 has 31 days
November 2018 has 30 days
December 2018 has 31 days

January 2019 has 31 days
February 2019 has 28 days
March 2019 has 31 days
April 2019 has 30 days
May 2019 has 31 days
June 2019 has 30 days
July 2019 has 31 days
August 2019 has 31 days
September 2019 has 30 days
October 2019 has 31 days
November 2019 has 30 days
December 2019 has 31 days

January 2020 has 31 days
February 2020 has 29 days
March 2020 has 31 days
April 2020 has 30 days
May 2020 has 31 days
June 2020 has 30 days
July 2020 has 31 days
August 2020 has 31 days
September 2020 has 30 days
October 2020 has 31 days
November 2020 has 30 days
December 2020 has 31 days

January 2021 has 31 days
February 2021 has 28 days
March 2021 has 31 days
April 2021 has 30 days
May 2021 has 31 days
June 2021 has 30 days
July 2021 has 31 days
August 2021 has 31 days
September 2021 has 30 days
October 2021 has 31 days
November 2021 has 30 days
December 2021 has 31 days

January 2022 has 31 days
February 2022 has 28 days
March 2022 has 31 days
April 2022 has 30 days
May 2022 has 31 days
June 2022 has 30 days
July 2022 has 31 days
August 2022 has 31 days
September 2022 has 30 days
October 2022 has 31 days
November 2022 has 30 days
December 2022 has 31 days

January 2023 has 31 days
February 2023 has 28 days
March 2023 has 31 days
April 2023 has 30 days
May 2023 has 31 days
June 2023 has 30 days
July 2023 has 31 days
August 2023 has 31 days
September 2023 has 30 days
October 2023 has 31 days
November 2023 has 30 days
December 2023 has 31 days

January 2024 has 31 days
February 2024 has 29 days
March 2024 has 31 days
April 2024 has 30 days
May 2024 has 31 days
June 2024 has 30 days
July 2024 has 31 days
August 2024 has 31 days
September 2024 has 30 days
October 2024 has 31 days
November 2024 has 30 days
December 2024 has 31 days

January 2025 has 31 days
February 2025 has 28 days
March 2025 has 31 days
April 2025 has 30 days
May 2025 has 31 days
June 2025 has 30 days
July 2025 has 31 days
August 2025 has 31 days
September 2025 has 30 days
October 2025 has 31 days
November 2025 has 30 days
December 2025 has 31 days


Process finished with exit code 0