0

我想从 Java Date/Calender 类中获取最后一个季度的最后日期。

例如 :

If current date = 3rd Oct

Lat Quater Last Date : 30th Sept. 

我可以使用 date.getMonth() 方法获得相同的结果,但由于这些方法已被贬低,想知道是否有更好的方法来实现相同的目标。

4

1 回答 1

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;
    }
}
于 2013-10-04T07:23:08.513 回答