public static Object rs2Stat(String[][] data) {
// TODO: 代码实现写在这里
List<String> stringList = new ArrayList<>();
List<Integer> cdata = new ArrayList<>();
Arrays.stream(data).forEach(x -> {
StringBuilder stringBuilder = new StringBuilder();
Arrays.stream(x).limit(3).forEach(y -> stringBuilder.append("-").append(y));
cdata.add(Integer.valueOf(x[3]));
stringList.add(stringBuilder.substring(1));
});
System.out.println(stringList);
System.out.println(cdata);
HashMap map = new HashMap();
map.put("xData",stringList);
HashMap yMap = new HashMap();
yMap.put("统计",cdata);
map.put("yData",yMap);
return map;
}
java 补全日期 两个日期之间补齐
public static Date str2Date(String str, String type) {
SimpleDateFormat sdf = new SimpleDateFormat(type);
if (null == str || "".equals(str)) {
return null;
}
Date date = null;
try {
date = sdf.parse(str);
return date;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static long getDaySub(String beginDateStr,String endDateStr){
long day=0;
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date beginDate;
java.util.Date endDate;
try{
beginDate = format.parse(beginDateStr);
endDate= format.parse(endDateStr);
day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000);
//System.out.println("相隔的天数="+day);
} catch (ParseException e){
// TODO 自动生成 catch 块
e.printStackTrace();
}
return day;
}
public static Date addDateOneDay(Date date) {
if (null == date) {
return date;
}
Calendar c = Calendar.getInstance();
c.setTime(date); //设置当前日期
c.add(Calendar.DATE, 1); //日期加1天
date = c.getTime();
return date;
}
/**
* 按日补全数据-具体逻辑
* @param oldList
* @param start
* @param end
* @param yData
* @return
*/
public static HashMap addDayForNull(List<String> oldList, String start, String end, Object yData){
HashMap hashMap = (HashMap) yData;
List<Integer> cdata = (List<Integer>) hashMap.get("统计");
long n= getDaySub(start,end)+1;
ArrayList <String> newList = new ArrayList<>();
int num=oldList.size();
int temp=0;
Date startDate = str2Date(start,"yyyy-MM-dd");
Date endDate = str2Date(end,"yyyy-MM-dd");
Date tmpDate = null;
if(startDate==null||endDate==null){
return null;
}
String dog = null;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
for(int i=0;i<n;i++){
if(temp < num){
tmpDate = str2Date(oldList.get(temp),"yyyy-MM-dd");
//如果开始日期小于当前记录日期则增加空白数据
if(startDate.compareTo(tmpDate) < 0){
dog=getNewStatisticResult(cdata,dateFormat.format(startDate),newList.size());
newList.add(dog);
}
if(startDate.compareTo(tmpDate) == 0){//原数据加入
newList.add(oldList.get(temp));
temp++;
}
}else if(startDate.compareTo(endDate) <= 0){//加入空数据直到结束时间
dog=getNewStatisticResult(cdata,dateFormat.format(startDate),newList.size());
newList.add(dog);
}
//开始时间向前加一天
startDate = addDateOneDay(startDate);
}
HashMap map = new HashMap();
map.put("xData",newList);
HashMap yMap = new HashMap();
yMap.put("统计",cdata);
map.put("yData",yMap);
return map;
}
private static String simplify(String date){
int index1 =date.indexOf("-");
int index2 =date.lastIndexOf("-");
int month;
int day;
int year=Integer.parseInt(date.substring(0,index1));
if(date.substring(index1+1,index1+2).equals("0")){
month=Integer.parseInt(date.substring(index1+2,index1+3));
}else {
month=Integer.parseInt(date.substring(index1+1,index1+3));
}
if(date.substring(index2+1,index2+2).equals("0")){
day=Integer.parseInt(date.substring(index2+2,index2+3));
}else{
day=Integer.parseInt(date.substring(index2+1,index2+3));
}
String date1=(year+"-"+month+"-"+day)+"";
return date1;
}
private static String getNewStatisticResult(List<Integer> cdata, String format, int s) {
cdata.add(s,0);