2013-10-04 209 views
0

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

例如:

If current date = 3rd Oct 

Lat Quater Last Date : 30th Sept. 

我能够得到同样的使用date.getMonth()方法,但这些方法是depricated,不知道什么更好的办法才达到相同。

+0

请注意放弃票的原因,我没有找到相同的问题。 – Swagatika

回答

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; 
    } 
} 
+0

谢谢,我一直在寻找这个。 – Swagatika