关于Java类Calendar做统计时 获取日期的一些常见操作

摘要:
1.本周的周一至周日//通过调整日历,获取这一天所属周的星期一和星期日SimpleDateFormatsdf=newSimpleDateFormat(“yyyy-MM-dd”);日历=newGregorian日历();cal.setFirstDayOfWeek(日历.MONDAY);cal.setTime(newDate());cal.set(卡伦达

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));
                    }
                }
            }

免责声明:文章转载自《关于Java类Calendar做统计时 获取日期的一些常见操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇BZOJ1103: [POI2007]大都市megbayer, yuv, RGB转换方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL Server Date 函数之DATEADD()

DATEADD() 函数在日期中添加或减去指定的时间间隔。 语法 DATEADD(datepart,number,date) date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。 datepart 参数可以是下列的值: datepart 缩写 年 yy, yyyy 季度...

mongodb 操作 Date字段类型 mongodb shell api

一,环境 php 7.2 + thinkphp 5 mongodb 3.4 二,针对Date字段的操作 mongodb shell: 写入: db.students3.insert([ { "_id" : 1, "tests" : [ 95, 92, 90 ], "lastUpdate" : ISODate("2019-01-01T00:00:00Z")...

xtrabackup增量备份mysql +MHA

http://blog.csdn.net/yanggd1987/article/category/2214421 https://www.centos.bz/2013/09/innobackupex-auto-backup-with-shell/   之前我们提到过xtrbackup备份mysql的几种方式:完整备份、增量备份、部分备份等,但是在实际生...

PHP date("Y-m-d H:i:s");获取当前时间 差8小时解决办法

原因: 从php5.1.0开始,php.ini里加了date.timezone这个选项,并且默认情况下是关闭的也就是显示的时间(无论用什么php命令)都是格林威治标准时间和我们的时间(北京时间)差了正好8个小时。 关于timezone 大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi ,PRC(依次为...

SQL to_char,to_date日期字符串转换问题

1、转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11-27','yyyy-mm-dd'),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。 如;to_date('2004-11-27 13:34:4...

按时间分区自动建分区表

在oracle11以前,分区维护需要手工维护,就是要手工建表分区。oracle11以后,就可以自动建时间分区了。 1、查看oracle 的版本号 select * from v$version; 我的oracle是11,支持自动建分区,查询结果如下: Oracle Database 11g Enterprise Edition Release 11.2....