import static java.lang.System.out;

import java.time.DayOfWeek;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.time.format.TextStyle;
import java.util.Locale;

public class Main {
	public static void main(String[] args) {
		DayOfWeek dow = getFirstDayOfMonth(2021, 5);
		out.println(dow); // SATURDAY

		// As weekday number
		out.println(dow.getValue()); // 6

		// Some predefined styles
		out.println(dow.getDisplayName(TextStyle.FULL, Locale.ENGLISH)); // Saturday
		out.println(dow.getDisplayName(TextStyle.SHORT, Locale.ENGLISH)); // Sat
		out.println(dow.getDisplayName(TextStyle.NARROW, Locale.ENGLISH)); // S

		// Formatting using DateTimeFormatter
		out.println(DateTimeFormatter.ofPattern("EEEE", Locale.ENGLISH).format(dow)); // Saturday
		out.println(DateTimeFormatter.ofPattern("EEE", Locale.ENGLISH).format(dow)); // Sat
		out.println(DateTimeFormatter.ofPattern("EEEEE", Locale.ENGLISH).format(dow)); // S
	}

	private static DayOfWeek getFirstDayOfMonth(int year, int month) {
		return YearMonth.of(year, month)
						.atDay(1)
						.getDayOfWeek();
	}
}