给定一个java.util.Date对象,我该如何查找它所在的Quarter?
假设Q1 = 1月2月3月,Q2 = 4月,5月,6月等.
我需要将当前季度的第一个日期作为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();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法修改该功能来实现这一点,还是有人能指出更好的方法?
假设Q1 = 1月2月3月,Q2 = 4月,5月,6月等.
我需要对有关季节的一些信息进行建模,并需要以与年份无关的方式根据开始/结束日期跟踪它们。即我需要允许用户将夏天定义为介于 5 月 15 日和 9 月 10 日之间,并且所有年份都这样做。
我需要对 isThisDateInSeason 类型进行大量检查)。所有日期操作功能(即日期、日历)似乎只适用于有效日期,即包括年份信息。
有没有关于如何做到这一点的最佳实践?我可以想到一堆hacky方法(即存储月份和月份的日期或存储日期并将它们带到基线年份以便我可以比较),但似乎可能有更好的方法.
我正在用 Java 或 Groovy 写这个。
将在乔达,时间在这里库的帮助?我没有这方面的经验,但它看起来有更多的灵活性。