项目统计需要展示折线图,要求横轴-当前日期的前4个季度、前12个月(至于包含/不包含本月,自己处理一下日期就好),获取数组
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
/**
* 获取当前前12个月,4个季度工具类
*/
public class PortalDateUtil {
//获取当前12个月
public static List<String> getLatest12Month(LocalDate date,int num){
List<String> monthList = new ArrayList<>();
for(int i = 0;i <= num-1; i++){
LocalDate localDate = date.minusMonths(i);
String month = localDate.toString().substring(0,7);
monthList.add(month);
}
return monthList;
}
//获取当前4个季度
public static List<String> getLatest4Quater(LocalDate date,int num){
List<String> quaterList = new ArrayList<>();
for(int i = 0;i <= num-1; i++){
LocalDate localDate = date.minusMonths(3*i);
String year = localDate.toString().substring(0,4);
String monthstr = localDate.toString().substring(5, 7);
int quaterNum = ((Integer.valueOf(monthstr)+2)/3);
String quater = year + "-q" + quaterNum;
quaterList.add(quater);
}
return quaterList;
}
public static void main(String[] args) {
System.out.println(getLatest12Month(LocalDate.now().plusMonths(3L),12));
System.out.println(getLatest4Quater(LocalDate.now().minusMonths(5L),4));
}
}
最后结果
,反正是我想要的
java8的LocalDate坑是坑,有时候又是真好用
更新,月份减了2次,哎
参考:
Java 获取过去12个月日期
获取当前时间近8个季度