例如,如果我在2016年8月获得了那么我的开始日期应该是2016年7月1日,结束日期是2016年9月30日(因为这是今年第3季度)。 任何人都可以为此解释一个逻辑吗?
答案 0 :(得分:2)
您可以使用Month
和LocalDate
方法获取这些日期:
public static void printStartEndQuarter(int year, Month month) {
LocalDate start = LocalDate.of(year, month.firstMonthOfQuarter(), 1);
Month endMonth = start.getMonth().plus(2);
LocalDate end = LocalDate.of(year, endMonth, endMonth.length(start.isLeapYear()));
System.out.println(start);
System.out.println(end);
}
答案 1 :(得分:1)
public static void printStartEndQuarter(int year, int month) {
double thisMonth = (double)month;
String quarter = thisMonth/3 <= 1 ? "Quarter 1" : thisMonth/3 <= 2 ? "Quarter 2" : thisMonth/3 <= 3 ? "Quarter 3" : "Quarter 4";
if (month % 3 == 2) {
month = month - 1;
}
else if (month % 3 == 0) {
month = month - 2;
}
LocalDate start = LocalDate.of(year, month, 1);
Month endMonth = start.getMonth().plus(2);
LocalDate end = LocalDate.of(year, endMonth, endMonth.length(start.isLeapYear()));
System.out.println("Start Date====" + start);
System.out.println("End Date====" + end);
System.out.println("quarter====" + quarter);
}
希望这对某些人有所帮助,它适用于任何测试案例。谢谢你@fabin。
答案 2 :(得分:0)
你究竟究竟是什么?一年的第三季度包括7月,8月和9月,因此该季度的开始日期是7月的第1天,结束日期是9月的最后一天。例如,如果您有2月或3月,则开始日期为2016年1月1日,结束日期为2016年3月31日。就这么简单。