我想从Java Date / Calender类中获取最后一个quater的最后日期。
例如:
If current date = 3rd Oct
Lat Quater Last Date : 30th Sept.
我可以使用date.getMonth()方法获得相同的效果,但由于这些方法已被删除,因此想知道是否有更好的方法可以实现相同的目标。
答案 0 :(得分:1)
对于日期操作,您应该使用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;
}
}