我想从 Java Date/Calender 类中获取最后一个季度的最后日期。
例如 :
If current date = 3rd Oct
Lat Quater Last Date : 30th Sept.
我可以使用 date.getMonth() 方法获得相同的结果,但由于这些方法已被贬低,想知道是否有更好的方法来实现相同的目标。
对于日期操作,您应该使用Calendar
. 这可能不是最有效的方法,但它适用于您的问题:
public Date calculateLastDayOfLastQuarter(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
int year = calendar.get(Calendar.YEAR);
try {
switch (calendar.get(Calendar.MONTH)) {
case Calendar.JANUARY:
case Calendar.FEBRUARY:
case Calendar.MARCH:
return sdf.parse("31.12." + (year - 1));
case Calendar.APRIL:
case Calendar.MAY:
case Calendar.JUNE:
return sdf.parse("31.03." + year);
case Calendar.JULY:
case Calendar.AUGUST:
case Calendar.SEPTEMBER:
return sdf.parse("30.06." + year);
case Calendar.OCTOBER:
case Calendar.NOVEMBER:
case Calendar.DECEMBER:
return sdf.parse("30.09." + year);
default:
return null;
}
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}