Is there a better way to compact this method i.e. reduce the cyclomatic complexity by avoid the switch cases?
String monthString; switch (month) { case 1: monthString = "January"; break; case 2: monthString = "February"; break; case 3: monthString = "March"; break; case 4: monthString = "April"; break; case 5: monthString = "May"; break; case 6: monthString = "June"; break; case 7: monthString = "July"; break; case 8: monthString = "August"; break; case 9: monthString = "September"; break; case 10: monthString = "October"; break; case 11: monthString = "November"; break; case 12: monthString = "December"; break; default: monthString = "Invalid month"; break; } System.out.println(monthString);
Month of() method in Java The of() method is a built-in method of the Month ENUM which is used to generate a Month instance from an integer value. The integer value should be in the range 1-12 representing any of the 12 months and the method generates a Month instance from it representing a month-of-year.
// displaying month number Format f = new SimpleDateFormat("M"); String strMonth = f. format(new Date()); System. out. println("Month Number = "+strMonth);
// displaying month in MMM format SimpleDateFormat simpleformat = new SimpleDateFormat("MMM"); String strMonth= simpleformat. format(new Date()); System. out. println("Month in MMM format = "+strMonth);
// displaying month in MMMM format SimpleDateFormat simpleformat = new SimpleDateFormat("MMMM"); String strMonth= simpleformat. format(new Date()); System. out. println("Month in MMMM format = "+strMonth);
Try:
import java.text.DateFormatSymbols; monthString = new DateFormatSymbols().getMonths()[month-1];
Alternatively, you could use SimpleDateFormat:
import java.text.SimpleDateFormat; System.out.println(new SimpleDateFormat("MMMM").format(date));
(You'll have to put a date with your month in a Date
object to use the second option).
Month
enumYou could use the Month
enum. This enum is defined as part of the new java.time framework built into Java 8 and later.
int monthNumber = 10; Month.of(monthNumber).name();
The output would be:
OCTOBER
Localize to a language beyond English by calling getDisplayName
on the same Enum.
String output = Month.OCTOBER.getDisplayName ( TextStyle.FULL , Locale.CANADA_FRENCH );
output:
octobre
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With