Как всегда, я бы рекомендовал использовать Joda Time . Смею сказать, java.util.Calendar
будет работать для этого, но я предпочитаю использовать Joda Time для всех вычислений даты и времени, где это возможно. Встроенные API ужасны. Йода делает это очень просто. (Если не указано, LocalDate
предполагает ISOChronology
- я ожидаю, что это то, что вы хотите, но вы можете указать другой, если вам нужно.)
import org.joda.time.*;
public class Test
{
// Just for the sake of a simple test program!
public static void main(String[] args) throws Exception
{
// Prints 1 (Monday)
System.out.println(getFirstDayOfMonth(2009, 6));
}
/** Returns 1 (Monday) to 7 (Sunday) */
private static int getFirstDayOfMonth(int year, int month)
{
LocalDate date = new LocalDate(year, month, 1);
return date.getDayOfWeek();
}
}
Или, если вам просто нужно сделать это в одном месте, вы можете разбить его на одну строку, если хотите:
int day = new LocalDate(year, month, 1).getDayOfWeek();
Трудно понять, как это может быть намного проще, чем это:)