获取指定年月的第一天与最后一天

package com.utils;

import java.util.*;
import java.text.SimpleDateFormat;

public class DateUtil {

    /**
     * 获取指定年月的第一天
     * @param ym yyyy-MM
     * @return
     */
    public static String getFirstDayOfMonth(String ym) {
        String arr[] = ym.split("-");

        int year = Integer.parseInt(arr[0]);
        int month = Integer.parseInt(arr[1]);

        Calendar cal = Calendar.getInstance();
        //设置年份
        cal.set(Calendar.YEAR, year);

        //设置月份 
        cal.set(Calendar.MONTH, month - 1);
        //获取某月最小天数
        int firstDay = cal.getMinimum(Calendar.DATE);
        //设置日历中月份的最小天数 
        cal.set(Calendar.DAY_OF_MONTH, firstDay);
        //格式化日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        return sdf.format(cal.getTime());
    }

    /**
     * 获取指定年月的最后一天
     * @param ym
     * @return
     */
    public static String getLastDayOfMonth(String ym) {
        String arr[] = ym.split("-");

        int year = Integer.parseInt(arr[0]);
        int month = Integer.parseInt(arr[1]);

        Calendar cal = Calendar.getInstance();
        //设置年份  
        cal.set(Calendar.YEAR, year);
        //设置月份  
        cal.set(Calendar.MONTH, month - 1);
        //获取某月最大天数
        int lastDay = cal.getActualMaximum(Calendar.DATE);
        //设置日历中月份的最大天数  
        cal.set(Calendar.DAY_OF_MONTH, lastDay);
        //格式化日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        return sdf.format(cal.getTime());
    }

    public static void main(String[] args) {
        System.out.println(getFirstDayOfMonth("2019-01"));
        System.out.println(getLastDayOfMonth("2019-01"));
    }
}

猜你喜欢

转载自www.cnblogs.com/yshyee/p/10492155.html
今日推荐