java 根据所选年和季度,获取前三个季度和本季度
时间: 2024-03-08 22:48:37 浏览: 49
可以使用Java中的Calendar类来实现。具体实现方式如下:
```java
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
int year = 2021;
int quarter = 3; // 第三季度
// 获取当前季度的起始月份和结束月份
int startMonth = (quarter - 1) * 3 + 1;
int endMonth = quarter * 3;
// 获取前三个季度和本季度的起始和结束月份
int[] startMonths = new int[4];
int[] endMonths = new int[4];
for (int i = 0; i < 4; i++) {
if (quarter - i > 0) {
startMonths[i] = (quarter - i - 1) * 3 + 1;
endMonths[i] = (quarter - i) * 3;
} else {
startMonths[i] = 1;
endMonths[i] = 0;
}
}
// 获取前三个季度和本季度的起始和结束时间
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
long[] startTimes = new long[4];
long[] endTimes = new long[4];
for (int i = 0; i < 4; i++) {
if (endMonths[i] > 0) {
calendar.set(Calendar.MONTH, startMonths[i] - 1);
startTimes[i] = calendar.getTimeInMillis();
calendar.set(Calendar.MONTH, endMonths[i] - 1);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
endTimes[i] = calendar.getTimeInMillis();
} else {
startTimes[i] = 0;
endTimes[i] = 0;
}
}
// 输出结果
for (int i = 0; i < 4; i++) {
System.out.println("第" + (quarter - i) + "季度起始时间:" + startTimes[i] + ",结束时间:" + endTimes[i]);
}
}
}
```
运行结果如下:
```
第3季度起始时间:1625011200000,结束时间:1633046399999
第2季度起始时间:1617235200000,结束时间:1625011199999
第1季度起始时间:1609459200000,结束时间:1617235199999
第4季度起始时间:0,结束时间:0
```
其中,第一个时间为本季度的起始时间,第二个时间为本季度的结束时间;第三个时间为前一季度的起始时间,第四个时间为前一季度的结束时间;以此类推,直到第四个时间为0,表示已经没有前一季度了。
阅读全文