プロジェクトがニーズを満たしている
場合、ユーザークエリの期間が長すぎてグラフが混雑しているときにグラフを最適化します。ユーザーのクエリ期間に応じて、echartsのX軸の値を変更する必要があります。
查询时间段达到年时X轴对应显示每月值;
查询时间段达到月时X轴对应显示每天值;
查询时间段达到天时X轴对应显示每小时值;
查询时间段达不到天时X轴显示默认时间字段;
クエリの期間を決定するロジックを作成する必要があります。ロジックは次のとおりです。
public int getYear(Date TIME,Date TIMEEnd) {
// 调用方法前判断日期是否为空 判断查询时间跨度是否达到年(12-N月)
Calendar cal1 = Calendar.getInstance();
cal1.setTime(TIME);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(TIMEEnd);
int Year = cal1.get(Calendar.YEAR);
int endYear = cal2.get(Calendar.YEAR);
int Month = cal1.get(Calendar.MONTH)+1;
int endMonth = cal2.get(Calendar.MONTH)+1;
int day = cal1.get(Calendar.DAY_OF_MONTH);
int endday = cal2.get(Calendar.DAY_OF_MONTH);
if (Year == endYear) {
//同年 调用方法前判断日期是否为空 判断查询时间跨度是否达到月但达不到年(0-364天)
if (Month == endMonth) {
//同年同月 调用方法前判断日期是否为空 判断查询时间跨度是否达到天但达不到月(0-744小时) 达不到天则用PRODUCE_TIME做区分
if (endday == day) {
//同年同月同日
return 0;
}
return 100;//同年同月不同日
}
return 100;//同年不同月
}
if (Month == endMonth) {
//不同年同月
if (endday >= day) {
//不同年同月 跨度达到年
return 10000;
}
return 100;//不同年同月 跨度达不到到年
}//不同年不同月
if (endMonth > Month) {
//不同年不同月 跨度达到年
return 10000;
}
return 100;//不同年不同月 跨度达到月
}
必要に応じて戻り値を変更できます。
最後に、テストを実行し、簡単なテストケースのテスト結果をブレークポイントに書き留めます。
このようにして、期間を判断し、さまざまな状況に応じてグラフのデータスタイルを変更できます。