/**
     *根据时间范围获得月份集
     * @return
     */
    public static List<String> getRangeSet(String beginDate,String endDate){
        /*      Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时,返回false;
          Date1.before(Date2),当Date1小于Date2时,返回TRUE,当大于等于时,返回false;
          如果业务数据存在相等的时候,而且相等时也需要做相应的业务判断或处理时,你需要使用:!Date1.after(Date2);*/
        List<String> rangeSet =null;
        SimpleDateFormat sdf = null;
          Date begin_date = null;
          Date end_date = null;
          rangeSet = new java.util.ArrayList<String>();
          sdf = new SimpleDateFormat("yyyy-MM");
        try {
              begin_date = sdf.parse(beginDate);//定义起始日期
              end_date = sdf.parse(endDate);//定义结束日期
        } catch (ParseException e) {
            System.out.println("时间转化异常,请检查你的时间格式是否为yyyy-MM或yyyy-MM-dd");
        }
          Calendar dd = Calendar.getInstance();//定义日期实例
          dd.setTime(begin_date);//设置日期起始时间
          while(!dd.getTime().after(end_date)){//判断是否到结束日期
              rangeSet.add(sdf.format(dd.getTime()));
              dd.add(Calendar.MONTH, 1);//进行当前日期月份加1
          }
          return rangeSet;
    }

/**
     *根据时间范围获得季度集
     * @return
     */
    public static List<String> getRangeSet_Q(String beginDate,String endDate){
        /*      Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时,返回false;
          Date1.before(Date2),当Date1小于Date2时,返回TRUE,当大于等于时,返回false;
          如果业务数据存在相等的时候,而且相等时也需要做相应的业务判断或处理时,你需要使用:!Date1.after(Date2);*/
        List<String> rangeSet =null;
        SimpleDateFormat sdf = null;
          Date begin_date = null;
          Date end_date = null;
          String[] numStr =null;
          String Q=null;
          rangeSet = new java.util.ArrayList<String>();
          sdf = new SimpleDateFormat("yyyy-MM");
        try {
              begin_date = sdf.parse(beginDate);//定义起始日期
              end_date = sdf.parse(endDate);//定义结束日期
        } catch (ParseException e) {
            System.out.println("时间转化异常,请检查你的时间格式是否为yyyy-MM或yyyy-MM-dd");
        }
          Calendar dd = Calendar.getInstance();//定义日期实例
          dd.setTime(begin_date);//设置日期起始时间
          while(!dd.getTime().after(end_date)){//判断是否到结束日期
              numStr=  sdf.format(dd.getTime()).split("-",0);
              Q = getQuarter(Integer.valueOf(numStr[1]))+"";
              System.out.println(numStr[0].toString()+"年"+numStr[1].toString()+"月"+"为"+numStr[0].toString()+"年第"+Q+"季");
              rangeSet.add(Q);
              dd.add(Calendar.MONTH, 1);//进行当前日期月份加1
          }
          return rangeSet;
    }

/**
     * 根据月获得季度
     * @param month  月
     * @return  季度
     */
    private static int getQuarter(int month) {
        if(month == 1 || month == 2 || month == 3){
            return 1;
        }else if(month == 4 || month == 5 || month == 6){
            return  2;
        }else if(month == 7 || month == 8 || month == 9){
            return 3;
        }else{
            return 4;
        }
    }

Java 获取指定日期范围内的每个月,每季度,每一年的更多相关文章

  1. JAVA获取指定日期是星期几

    /** * 获取指定日期是星期几<br> * * @param date * @return 指定日期是星期几 */ public static String getWeekOfDate( ...

  2. Java 获取指定日期的方法总结

    原文地址:http://bdcwl.blog.163.com/blog/static/765222652009104171521/ SimpleDateFormat sdf = new SimpleD ...

  3. Java 获取指定日期的方法总结 -转

    格式化日期 String-->Date  或者 Data-->String SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M ...

  4. JAVA获取指定日期的一天的开始时刻(时间)和结束时刻(时间)

    注: SimpleDateFormat是线程不安全的 public static SimpleDateFormat format = new SimpleDateFormat("yyyyMM ...

  5. Java 获取指定日期的方法汇总

    import java.text.DateFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; impo ...

  6. java获取指定日期的年、月、日的值

    参数:String dateStr = '2016-05-18'; 1.获取string对应date日期: Date date = new SimpleDateFormat("yyyy-MM ...

  7. JAVA获取指定日期的周一的日期

    /** * 获取当前周的周一的日期 * @param date 传入当前日期 * @return */ public static Date getThisWeekMonday(Date date) ...

  8. java 获取指定日期

    //可以设置指定那一天:例如,最近一周,参数传入-7,最近一月,参数传入-30...private String getBeginDate(int date) throws ParseExceptio ...

  9. java获取指定日期之前或之后的时间

    /** * 前/后?分钟 * * @param d * @param minute * @return */ public static Date rollMinute(Date d, int min ...

随机推荐

  1. shared_ptr和动态数组

    std::shared_ptr智能指针是c++11一个相当重要的特性,可以极大地将开发者从资源申请/释放的繁重劳动中解放出来. 然而直到c++17前std::shared_ptr都有一个严重的限制,那 ...

  2. 基础知识:编程语言介绍、Python介绍、Python解释器安装、运行Python解释器的两种方式、变量、数据类型基本使用

    2018年3月19日 今日学习内容: 1.编程语言的介绍 2.Python介绍 3.安装Python解释器(多版本共存) 4.运行Python解释器程序两种方式.(交互式与命令行式)(♥♥♥♥♥) 5 ...

  3. 69道Spring面试题和答案,简单明了无套路

    目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spri ...

  4. springboot源码分析-SpringApplication

    SpringApplication SpringApplication类提供了一种方便的方法来引导从main()方法启动的Spring应用程序 SpringBoot 包扫描注解源码分析 @Spring ...

  5. H5与C3权威指南笔记--transition动画

    translation:过渡 举个栗子:transition: width 1s linear; transition有三个属性,分别是transition-property, transition- ...

  6. java压缩指定目录下的所有文件和文件夹的代码

    将代码过程较好的代码段备份一下,下边资料是关于java压缩指定目录下的所有文件和文件夹的代码,希望对码农有帮助. String sourceDir="E:\test";int pa ...

  7. 3Delight NSI: A Streamable Render API

    3Delight是应用于高端电影级别渲染的软件渲染器,迄今为止已经参与了无数的电影制作,具体可以参见链接. 如果你对3Delight的印象就依然是RenderMan的替代品,那就显然已经和时代发展脱节 ...

  8. 随笔:关于去年的WordPress建站的回忆

    2018-02-26    建站 2018-02-28    选择主题Clearision 2018-03-01    学习插入视频.修改主题 <iframe src="//playe ...

  9. 【已采纳】最快获取package和activity的方式

    意外找到一个本人自认为是最快获取package和activity的方法,欢迎来辩! 用adb命令快速查看某应用appPackage及appActivity的方法(前提是需要用数据线连接真机\模拟器也可 ...

  10. Scrum笔记

    Scrum的笔记,需要的童鞋拿去,有错漏处请指正,谢谢. 出处:https://www.cnblogs.com/Ryu666/p/9890609.html