获取当前年月日,判断当前月份有多少天,当月1号为星期几

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);  一号为星期几

猜你喜欢

转载自blog.csdn.net/ZhangXuxiaoqingnian/article/details/81458248