如何获得当前季度的开始日期和结束日期..?

时间:2016-09-20 11:02:19

标签: java

例如,如果我在2016年8月获得了那么我的开始日期应该是2016年7月1日,结束日期是2016年9月30日(因为这是今年第3季度)。 任何人都可以为此解释一个逻辑吗?

3 个答案:

答案 0 :(得分:2)

您可以使用MonthLocalDate方法获取这些日期:

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日。就这么简单。