java 实现查出日数据,根据日数据实现日、周、月char曲线图展示,月展示前6个月,周先生近7周数据,日展示近7天数据,具体展示多少天可以根据配置实现。

本文介绍如何使用Java实现从日数据出发,生成日、周、月的图表展示,包括月显示前6个月,周显示近7周,日显示近7天的数据,并且可以根据配置调整展示天数。
摘要由CSDN通过智能技术生成

java 实现查出日数据,根据日数据实现日、周、月char曲线图展示,月展示前6个月,周先生近7周数据,日展示近7天数据,具体展示多少天可以根据配置实现。

1、装换工具类定义

@Slf4j
public class CharMonthWeekDay {
   
    /**
     *
     * @param timeType 日期范围 月 周 日
     * @param
     * @param dataFormat
     * @param operationByDay  查询日数据
     * @return
     */
    public static List<ChartData> parse(TimeType timeType,  String dataFormat,List<ChartData> operationByDay,Map<String, Double> mapCantChange) {
   
        //SimpleDateFormat querySDF = new SimpleDateFormat(queryFormat == null ? "yyyy-MM-dd 00:00:00" : queryFormat);
        Map<String,Double> map=new LinkedHashMap<>();
        //防止改变外面的map
        for(String key:mapCantChange.keySet()){
   
            map.put(key,mapCantChange.get(key));
        }
        SimpleDateFormat dataSDF = new SimpleDateFormat(dataFormat == null ? "yyyy-MM-dd" : dataFormat);
        Calendar instance = Calendar.getInstance();
        instance.setFirstDayOfWeek(Calendar.MONDAY);
//        List<ChartData> operationByDay = callback.query(begin, null, appName);
        try {
   
            Double val = 0.0;
            for (ChartData chartData : operationByDay) {
   
                String key = null;
                Date date = dataSDF.parse(chartData.getX());
                instance.setTime(date);
                if (timeType.equals(TimeType.Day)) {
   
                    int month = instance.get(Calendar.MONTH) + 1;
                    int day = instance.get(Calendar.DAY_OF_MONTH);
                    key = String.format("%d月%d日", month, day);
                } else if (timeType.equals(TimeType.Week)) {
   
                    int month = instance.get(Calendar.MONTH) + 1;
                   int week = instance.get(Calendar.WEEK_OF_MONTH) ;
                    key = String.format("%d月第%d周", month, week);
                } else if (timeType.equals(TimeType.Month)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值