计算当前日期前几(年、月、日)或后几(年、月、日)的日期
1.计算当前日期前几年或后几年当前的日期
/**
* 计算当前日期前几年或后几年当前的日期
*
* @param startDate
* @param amount(eg:2:后两年,-2:前两年)
* @return java.lang.String
* @author lxh
* @date 2021/7/21 20:12
*/
public static String getYear(String startDate, Integer amount) throws ParseException {
Date date = (new SimpleDateFormat("yyyy-MM-dd")).parse(startDate);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.YEAR, amount);
date = cal.getTime();
return (new SimpleDateFormat("yyyy-MM-dd")).format(date);
}
2.计算当前日期前几月或后几月当前的日期
/**
* 计算当前日期前几月或后几月当前的日期
*
* @param startDate
* @param amount(eg:2:后两月,-2:前两月)
* @return java.lang.String
* @author lxh
* @date 2021/7/21 20:29
*/
public static String getMonth(String startDate, Integer amount) throws ParseException {
Date date = (new SimpleDateFormat("yyyy-MM-dd")).parse(startDate);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, amount);
date = cal.getTime();
return (new SimpleDateFormat("yyyy-MM-dd")).format(date);
}
3.计算当前日期前几天或后几天的日期
/**
* 计算当前日期前几天或后几天的日期
*
* @param startDate 开始日期
* @param amount (1:后一天,-1:前一天)
* @return java.lang.String
* @author lxh
* @date 2021/7/21 15:23
*/
public String getDay(String startDate, Integer amount) throws ParseException {
Date date = (new SimpleDateFormat("yyyy-MM-dd")).parse(startDate);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, amount);
date = cal.getTime();
return (new SimpleDateFormat("yyyy-MM-dd")).format(date);
}
4.举例
public static void main(String[] args) throws ParseException {
String startDate = "2021-05-05";
System.out.println("前两年的当前日期为:" + getYear(startDate, -2));
System.out.println("后两年的当前日期为:" + getYear(startDate, 2));
System.out.println("前两月的当前日期为:" + getMonth(startDate, -2));
System.out.println("后两月的当前日期为:" + getMonth(startDate, 2));
System.out.println("前两天的当前日期为:" + getDay(startDate, -2));
System.out.println("后两天的当前日期为:" + getDay(startDate, 2));
}
输出结果为:
前两年的当前日期为:2019-05-05
后两年的当前日期为:2023-05-05
前两月的当前日期为:2021-03-05
后两月的当前日期为:2021-07-05
前两天的当前日期为:2021-05-03
后两天的当前日期为:2021-05-07