sell-- Calendar 和 Date- 01,月份不变年份+3或直接到2017

1. 2016/11/24

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

/**
 * 需求2014-01-01之前的月不变,年份改成2017; 2014-01-01之后的月不变,年份改成+3
 */
public class CalendarTest {
    public static void main(String[] args) throws Exception {
        System.out.println(formatCraftDate("2015-05-04")); //May 2018
        System.out.println(formatCraftDate("2011-05-04")); //May 2017
    }

    private static String formatCraftDate(String dateStr) throws  Exception{
        String resultDateStr = null;
        String stardardDateStr = "2014-01-01";
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date stardardDate = dateFormat.parse(stardardDateStr);
        Date date = dateFormat.parse(dateStr); //传过来的日期
        Calendar calendar = Calendar.getInstance();
        if (date.before(stardardDate)) { // 2013-01-01 before 2014-01-01 为true, 月份不变,年统统改成2017
            calendar.setTime(date);
            resultDateStr = convertMonth(calendar.get(Calendar.MONTH)) + " 2017";
        } else { // 2017-01-01 before 2014-01-01 为false , 月份不变,年份加+3
            calendar.setTime(date);
            calendar.add(Calendar.YEAR, 3);
            resultDateStr = convertMonth(calendar.get(Calendar.MONTH)) +" " + calendar.get(Calendar.YEAR);
        }
        return resultDateStr;
    }
    public static String convertMonth(int month) {
        if (month == 0) return "January";
        if (month == 1) return "February";
        if (month == 2) return "March";
        if (month == 3) return "April";
        if (month == 4) return "May";
        if (month == 5) return "June";
        if (month == 6) return "July";
        if (month == 7) return "August";
        if (month == 8) return "September";
        if (month == 9) return "October";
        if (month == 10) return "November";
        if (month == 11) return "December";
        return null;
    }
}
原文地址:https://www.cnblogs.com/bravolove/p/6096601.html