我需要将当前季度的第一个日期作为java.util.Date对象,将当前季度的最后一个日期作为java.util.Date对象。
我正在使用以下方法来获得这个月的第一次约会和这个月的最后一次约会。
private Date getThisMonthFirstDate(){
Calendar calendar = new GregorianCalendar();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
private Date getThisMonthLastDate(){
Calendar calandar = new GregorianCalendar();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.DAY_OF_MONTH,1);
calendar.add(Calendar.MONTH, 1);
calendar.add(Calendar.DATE, -1);
return calendar.getTime();
}是否有办法修改这个功能来实现这一点,或者有人能指出一个更好的方法吗?
假设Q1 =一月二月三月,Q2 =四月,五月,六月等。
发布于 2016-04-08 08:32:49
你可以使用joda:
Date start = date.withMonthOfYear(((date.getMonthOfYear() / 3) + 1) * 3 - 2)
.withDayOfMonth(1)
.withTimeAtStartOfDay()
.toDate();
Date end = date.withMonthOfYear(((date.getMonthOfYear() / 3) + 1) * 3)
.withDayOfMonth(Month.of(((date.getMonthOfYear() / 3) + 1) * 3).maxLength())
.withTimeAtStartOfDay()
.toDate();当DateTime date =新DateTime(2016、8、12、1、1、1);
我得到:
Fri Jul 01 00:00:00 CEST 2016
Fri Sep 30 00:00:00 CEST 2016https://stackoverflow.com/questions/36493649
复制相似问题