Calendar calendar=Calendar.getInstance(); // 获取当前年份 mYear = calendar.get(Calendar.YEAR); // 获取当前月份以(0开头,所以要+1) mMonth = calendar.get(Calendar.MONTH); // 获取当前为几号以(0开头) mDay = calendar.get(Calendar.DAY_OF_MONTH);
判断这个月有多少天和这个月的1号是星期几
工具类
public class SpecialCalendar { /** * 判断是否是闰年 */ public boolean isLeapYear(int year){ if (year % 100 == 0 && year % 400 == 0){ return true; }else if (year % 100 != 0 && year % 4==0){ return true; } return false; } /** * 得到某月多少天 * 哈哈少儿口诀:1357810腊三十一天永不差,469冬三十日平年二月28,闰年再把一天加。 */ public int getDaysOfMonth(boolean isLeapYear,int month){ int days=0; switch (month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; break; case 4: case 6: case 9: case 11: days=30; break; case 2: if (isLeapYear){ days=29; }else{ days=28; } } return days; } /** * 得到某年某月一号是星期几 (0-6 日-六) */ public int getWeekdayOfMonth( int mYear, int mMonth){ Calendar cal=Calendar.getInstance(); cal.set(mYear,mMonth,1); return cal.get(Calendar.DAY_OF_WEEK)-1; } }
//把得到的年月放进去
SpecialCalendar specialCalendar=new SpecialCalendar(); boolean leapYear = specialCalendar.isLeapYear(mYear); int daysOfMonth = specialCalendar.getDaysOfMonth(leapYear, mMonth+1); 判断这个月有多少天 int weekdayOfMonth = specialCalendar.getWeekdayOfMonth(mYear, mMonth); 一号为星期几