博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Java类Calendar做统计时 获取日期的一些常见操作
阅读量:5023 次
发布时间:2019-06-12

本文共 3832 字,大约阅读时间需要 12 分钟。

1、获取本周的周一到周日

//通过调整日历,获得本天所属周的周一和周日  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal=new GregorianCalendar(); cal.setFirstDayOfWeek(Calendar.MONDAY); cal.setTime(new Date()); cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek()); String startTime1 = sdf.format(cal.getTime()); cal.set(Calendar.DATE, cal.get(cal.DATE) + 6);   String endTime1 = sdf.format(cal.getTime()); date = startTime1+"~"+endTime1;

2、根据本周的时间获得上周的周一和周日Calendar calendar = Calendar.getInstance();

  Calendar calendar = Calendar.getInstance();

calendar.setTime(startTime);//startTime当前查询周的周一(不一定是本周,也可以是指定查询某一天的周一) calendar.set(Calendar.DATE, calendar.get(calendar.DATE) -1); end2 = sdf.parse(sdf.format(calendar.getTime())); calendar.set(Calendar.DATE, calendar.get(calendar.DATE) -6); start2 = sdf.parse(sdf.format(calendar.getTime()));

 3、按照查询的某周的周一到周日获取指定周的周数据

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");            //遍历日期来查询,保证一天一查,查询结果是对的            Calendar c = Calendar.getInstance();            c.setTime(startTime);            Date time = sdf.parse(sdf.format(c.getTime()));            while(time.getTime()<=endTime.getTime())            {                //不是今天                if(time.getTime()!=sdf.parse(sdf.format(new Date())).getTime())                {                    SalesOrderStatDay dayObj = salesOrderStatDayDAO.getDataByDate(userId,time);                    list.add(dayObj);                }                else                {                    //统计一下今天的报单数据,因为后台数据是使用quartz定时任务在零点才去统计当天数据,为了能看到当天数据 只能去实时查询                    SalesOrderStatDay dayObj = getTodayData(userId);                    list.add(dayObj);                }                c.add(Calendar.DATE, 1);                time = sdf.parse(sdf.format(c.getTime()));//从周一加到周日                                            }

4、获取指定月份

sdf= new SimpleDateFormat("yyyy-MM");            Calendar calendar = Calendar.getInstance();            try {                calendar.setTime(sdf.parse(month));            } catch (ParseException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            calendar.set(calendar.MONTH, calendar.get(calendar.MONTH) -1);//进行减一操作,因为系统计算月份是从0开始            date2 = sdf.format(calendar.getTime());

5、按照月份查询每一天数据

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM");            SimpleDateFormat sdflll= new SimpleDateFormat("yyyy-MM-dd");            Date today = sdflll.parse(sdflll.format(new Date()));            Calendar cal = Calendar.getInstance();            cal.setTime(sdf.parse(date));            //总天数            int dayNum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);            cal.set(Calendar.DAY_OF_MONTH,1);            for(int i=1;i<=dayNum;i++)            {                Date time = sdflll.parse(sdflll.format(cal.getTime()));                //不是今天                if(cal.getTime()!=today.getTime())                {                    SalesOrderStatDay dayObj = salesOrderStatDayDAO.getDataByDate(userId,time);                    list.add(dayObj);                }                else                {                    //统计一下今天的报单数据                    SalesOrderStatDay dayObj = getTodayData(userId);                    list.add(dayObj);                }                cal.add(Calendar.DATE, 1);//日期加一                            }

 6、统计一天24小时数据

//查询每个小时内这些店铺的订单            if (StringUtils.isNotBlank(date)) {                for (int i=0; i<24; i++) {                    if (i<10) {                        list.add(salesOrderStatDayDAO.showSalesOrderOnDay(shopList,date+" 0"+i,status,leiXing));                    } else {                        list.add(salesOrderStatDayDAO.showSalesOrderOnDay(shopList,date+" "+i,status,leiXing));                    }                }            }

 

转载于:https://www.cnblogs.com/lxk233/p/10024751.html

你可能感兴趣的文章
vs2013编译qt程序后中文出现乱码
查看>>
【转】IOS数据库操作SQLite3使用详解
查看>>
Android官方技术文档翻译——ApplicationId 与 PackageName
查看>>
设计网站大全
查看>>
JVM CUP占用率过高排除方法,windows环境
查看>>
【转】JAVA字符串格式化-String.format()的使用
查看>>
【转】ButterKnife基本使用--不错
查看>>
【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”...
查看>>
函数中关于const关键字使用的注意事项
查看>>
微信架构(转)
查看>>
Web项目中的路径问题
查看>>
js随机数的取整
查看>>
关于解析漏洞
查看>>
十大经典预测算法(六)---集成学习(模型融合算法)
查看>>
用php做一个简单的注册用户功能
查看>>
一款基于css3的3D图片翻页切换特效
查看>>
Feign使用Hystrix无效原因及解决方法
查看>>
Sizeof与Strlen的区别与联系
查看>>
hadoop2.2.0_hbase0.96_zookeeper3.4.5全分布式安装文档下载
查看>>
Flutter 贝塞尔曲线切割
查看>>