Java:得到指定年份、月份、周次的最后一天

时间:2021-01-20 00:38:54

使用Java的工具类Calendar

通过Calendar可以进行很多的日期操作

/**
     * 得到指定年份的最后一天
     * @param year
     */
    public static void getLastDayOfYear(int year){
        Calendar calendar = Calendar.getInstance();
        //先指定为后一年
        calendar.set(Calendar.YEAR,year+1);
        //DAY_OF_YEAR的值按照年份的第一天从1开始,设置为0可以得到前一年的最后一天
        calendar.set(Calendar.DAY_OF_YEAR,0);
       String lastDayOfYear = dateFormat.format(calendar.getTime());
        System.out.println(lastDayOfYear);
    }

    /**
     * 得到指定月份的最后一天
     * @param month
     */
    public static void getLastDayOfMonth(int month){
        Calendar calendar = Calendar.getInstance();
        //MONTH的值从0-11分别是12个月份
        calendar.set(Calendar.MONTH,month);
        //DAY_OF_MONTH的值按照月份的第一天从1开始,设置为0可以得到前一月的最后一天
        calendar.set(Calendar.DAY_OF_MONTH,0);
        String lastDayOfMonth = dateFormat.format(calendar.getTime());
        System.out.println(lastDayOfMonth);
    }

    /**
     * 得到指定日期所在周次的最后一天
     * @param date
     */
    public static void getLastDayOfWeek(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        //得到这一周的指定日期
        calendar.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
        String lastDayOfWeek = dateFormat.format(calendar.getTime());
        System.out.println(lastDayOfWeek);
    }

Calendar除了能够得到某一天之外,也能通过get方法得到日期的信息

例如判断某一天是否为周末

public static boolean isWeekend(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
       return calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY ||
               calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY;
    }

测试一下

public static void main(String[] args) {
        getLastDayOfYear(2021);
        getLastDayOfMonth(5);
        getLastDayOfWeek(new Date());
        System.out.println(isWeekend(new Date()));
    }

运行结果

Java:得到指定年份、月份、周次的最后一天