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

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);//日期加一

            }

原文地址:https://www.cnblogs.com/lxk233/p/10024751.html

时间: 2024-10-13 14:55:01

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

普通java类在Tomcat启动时获取ServletContext

1.web.xml配置文件 <context-param> <param-name>messagePrefix</param-name> <param-value>需要在tomcat启动时获取的字符串</param-value> </context-param> 2.普通java类 1 import org.springframework.web.context.ContextLoader; 2 import org.springfr

Js获取日期时间及其它操作

var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();    //获取完整的年份(4位,1970-????)myDate.getMonth();       //获取当前月份(0-11,0代表1月)myDate.getDate();        //获取当前日(1-31)myDate.getDay();         //获取当前星期X(0-6,0代表星期天)myDate.getTi

编写一个JAVA类,用于计算两个日期之间的周数。

import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner; public class demo3 { /**  * @param args  */ public static void main(String[] args) {  // TODO Auto-generated method stub  System.out.println("请输入第一个日期:yyyy-MM-dd")

kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件

该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义功能的实现改为在eclipse等ide中开发. 设计本插件的原因是直接在kettle中写java代码是很不容易的事,开发体验与eclipse差得远,java语法还要受到限制,调试麻烦.实现点简单的逻辑还行,稍微复杂一点就比较麻烦,需要对java和kettle相关接口很熟悉.而简单的功能可以采用jav

[运行时获取模板类类型] Java 反射机制 + 类型擦除机制

给定一个带模板参数的类 class A<T> { } 如何在运行时获取 T的类型? 在C#中,这个很简单,CLR的反射机制是解释器支持的,大概代码为: namespace TestReflect { class Program<T> { public Type getTClass() { Type type= this.GetType(); Type[] tts = type.GetGenericArguments(); return tts[0]; } } } 可是在Java中,

java使用Calendar类获取常用简单工具类

前言: 在工作中,我们经常会用到时间相关的.比如月初.月末.年初.年末.指定月份所在季度的季末.当前时间加X天.x月.x年等这些常用的虽说不难,但是如果要用到,立马又想不起来.这里凯哥归纳了一些常用的放在一个工具类中.有需要的朋友可以拿去或是收藏.如果大家有更好的,欢迎留言.如果凯哥哪里不对,欢迎大家留言骂起~. 声明:本文有凯哥Java(www.kaigejava.com)发布于凯哥个人博客. 正文: 1:获取指定日期 指定月份后的最后一天.返回格式:yyyyMMdd 获取指定日期 指定月份后

JAVA学习第四十六课 — 其他对象API(二)Date类 &amp; Calendar类(重点掌握)

Date类(重点) 开发时,会时常遇见时间显示的情况,所以必须熟练Date的应用 <span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>import java.util.*; public class Main { public static void main(String[] args){ long l = System.currentTimeMillis();//14140798929

Java中Calendar工具类的一些常用方法

一:字段和方法的信息YEAR 字段:public static final int YEAR ;指示年的 get 和 set 的字段数字.这是一个特定于日历的值:get 方法:public int get(int field) ;返回给定日历字段的值.在 lenient 模式下,所有日历字段都被标准化.在 non-lenient 模式下,所有日历字段都是经过验证的,如果任何日历字段有超出范围的值,则此方法抛出一个异常.标准化和验证都是通过 complete() 方法处理的,这个过程与日历系统有关

I学霸官方免费教程二十三:Java常用类之日期类 Date类 SimpleDateFormat类 Calendar类

Date 类 创建对象时,默认获取系统当前时间 SimpleDateFormat类 用来格式化日期的:创建对象是可以传入格式:new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");主要方法format(Date) Calendar类 可以使用SimpleDateFormat类中的getCalendar()方法获取对象.常用方法:get(int); 常用属性:YEAR MONTH... 实例: package common_class; import j