public static List getWeekendInMonth(int year, int month) { List list = new ArrayList(); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, year);// 不設置的話默認為當年 calendar.set(Calendar.MONTH, month - 1);// 設置月份 calendar.set(Calendar.DAY_OF_MONTH, 1);// 設置為當月第一天 int daySize = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);// 當月最大天數 for (int i = 0; i < daySize; i++) { calendar.add(Calendar.DATE, 1);//在第一天的基礎上加1 int week = calendar.get(Calendar.DAY_OF_WEEK); if (week == Calendar.SATURDAY || week == Calendar.SUNDAY) {// 1代表周日,7代表周六 判斷這是一個星期的第幾天從而判斷是否是周末 list.add(calendar.get(Calendar.DAY_OF_MONTH));// 得到當天是一個月的第幾天 } } return list; }
總結:
Calendar類和Date類都表示時間,Calendar類比Date類出現的晚,Calendar類包含的操作也更加豐富。通過getTime()方法就可以得到Date對象。
Calendar.DAY_OF_WEEK:表示當天是一個星期的第幾天(一個星期7天)。取到的對應的值為1-7,或者為 SUNDAY
、MONDAY
、TUESDAY
、WEDNESDAY
、THURSDAY
、FRIDAY
和 SATURDAY
。
Calendar.DAY_OF_MONTH:表示當天是一個月的第幾天。一個月有28,29,30,31等天。取到的對應的值為幾號,一個月的第一天為1
Calendar.DAY_OF_YEAR:表示當天是一年的第幾天。一年的第一天為1
Calendar.getInstance()方法默認為當前時間點(包括年月日時分秒毫秒等信息),可以通過對應的set方法,設置對象所表示的時間,add方法 計算當前對象表示的時間經過操作后得到的時間信息。同樣new Date()方法默認表示當前時間,可以通過將字符類型轉換為Date對象來設置Date對象表示的時間