java生成最近12个月代码

java生成最近12个月代码(年月显示)

import org.apache.commons.lang3.StringUtils;
import org.junit.Test;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class LastYear12Month {

    /**
     * 获取系统当前年月
     * @return
     */
    public static String getDateYearMonth() {
        Calendar calendar = GregorianCalendar.getInstance();
        return calendar.get(Calendar.YEAR)+"-"+(calendar.get(Calendar.MONTH) + 1);
    }

    /**
     * 获取系统当前年
     * @return
     */
    public static String getDateYear() {
        Calendar calendar = GregorianCalendar.getInstance();
        return calendar.get(Calendar.YEAR) + "";
    }

    /**
     * 格式化时间
     * @param date
     * @param type
     * @return
     */
    public static Date format(String date, String type) throws Exception{
        if(StringUtils.isBlank(type)) type = "yyyy-MM-dd HH:mm:ss";
        SimpleDateFormat format = new SimpleDateFormat(type);
        return format.parse(date);
    }

    /**
     * 获取对应最近月数据
     * @param date 日期
     * @param num 月数量
     * @return
     */
    public static String[] getLatest12Month(Date date,int num){
        Calendar  from  =  Calendar.getInstance();
        StringBuffer sub=new StringBuffer();
        from.setTime(date);
        for (int i=num;i>0;i--) {
            from.add(Calendar.MONTH, -i+1);
            sub.append(from.get(Calendar.YEAR)+"-"+fillZero(from.get(Calendar.MONTH)+1)).append(",");
            from.add(Calendar.MONTH, i-1);
        }
        sub.deleteCharAt(sub.lastIndexOf(","));
        return sub.toString().split(",");
    }
    /**
     * 格式化月份
     */
    public static String fillZero(int i){
        String month = "";
        if(i<10){
            month = "0" + i;
        }else{
            month = String.valueOf(i);
        }
        return month;
    }

    @Test
    public void test(){
        try {
            String dateYearMonth= getDateYear()+"-12";
            Date format = format(dateYearMonth, "yyyy-MM");
            String[] last12Month = getLatest12Month(format,12);
            for (String month:last12Month) {
                System.out.println(month);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值