在最近的项目中,有这么一个需求,根据开始时间、结束时间得到两个时间段内所有的日期,以下分享我的代码给大家。

1、以下的这个方法适用于jdk1.5以上的版本


  1. /**
  2. * 根据开始时间和结束时间返回时间段内的时间集合
  3. * @param beginDate
  4. * @param endDate
  5. * @return List
  6. */
  7. @SuppressWarnings("unchecked")
  8. public static List getDatesBetweenTwoDate(Date beginDate, Date endDate) {
  9. List lDate = new ArrayList();
  10. lDate.add(beginDate);//把开始时间加入集合
  11. Calendar cal = Calendar.getInstance();
  12. //使用给定的 Date 设置此 Calendar 的时间
  13. cal.setTime(beginDate);
  14. boolean bContinue = true;
  15. while (bContinue) {
  16. //根据日历的规则,为给定的日历字段添加或减去指定的时间量
  17. cal.add(Calendar.DAY_OF_MONTH, 1);
  18. // 测试此日期是否在指定日期之后
  19. if (endDate.after(cal.getTime())) {
  20. lDate.add(cal.getTime());
  21. } else {
  22. break;
  23. }
  24. }
  25. lDate.add(endDate);//把结束时间加入集合
  26. return lDate;
  27. }

2、以下的方法适用于jdk1.4以下的版本

  1. /**
  2. * 根据开始时间和结束时间返回时间段内的时间集合
  3. * @param beginDate
  4. * @param endDate
  5. * @return List
  6. */
  7. public static List getDatesBetweenTwoDate(Date beginDate, Date endDate) {
  8. List lDate = new ArrayList();
  9. lDate.add(beginDate);//把开始时间加入集合
  10. Calendar cal = Calendar.getInstance();
  11. //使用给定的 Date 设置此 Calendar 的时间
  12. cal.setTime(beginDate);
  13. boolean bContinue = true;
  14. while (bContinue) {
  15. //根据日历的规则,为给定的日历字段添加或减去指定的时间量
  16. cal.add(Calendar.DAY_OF_MONTH, 1);
  17. // 测试此日期是否在指定日期之后
  18. if (endDate.after(cal.getTime())) {
  19. lDate.add(cal.getTime());
  20. } else {
  21. break;
  22. }
  23. }
  24. lDate.add(endDate);//把结束时间加入集合
  25. return lDate;
  26. }

3、调用测试

  1. public static void main(String[] args)throws Exception{
  2. System.out.println("jdk1.6测试");
  3. Calendar cal = Calendar.getInstance();
  4. String start = "2012-01-03";
  5. String end = "2012-03-05";
  6. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  7. Date dBegin =sdf.parse(start);
  8. Date dEnd = sdf.parse(end);
  9. List listDate = getDatesBetweenTwoDate(dBegin, dEnd);
  10. for(Date date:listDate){
  11. System.out.println(sdf.format(date));
  12. }
  13. System.out.println("jdk1.4测试");
  14. List lDate = getDatesBetweenTwoDate(dBegin, dEnd);
  15. for(int i=0;i Date date = (Date)lDate.get(i);
  16. System.out.println(sdf.format(date));
  17. }
  18. }

转载于:https://blog.51cto.com/johnny84/1159605

java方法,返回两个日期内的所有date集合,根据开始时间、结束时间得到两个时间段内所有的日期...相关推荐

  1. java判断当前时间是否在对应时间段内

    /*** @param beginTime 开始时间* @param endTime 结束时间* @return true在时间段内,false不在时间段内*/ public static boole ...

  2. Java方法返回值类型归纳

    Java方法返回值类型归纳 我们再调用一个方法时,将方法体内产生的一条数据输出到方法体外使用,这条数据我们叫做返回值. 返回值类型分为两大类:第一类,无返回值类型:void.第二类,有返回值类型,返回 ...

  3. java 返回布尔值_如何使用Java方法返回的布尔值?

    我有一个方法,发送一堆字符到另一个方法,如果某些字符存在,将返回true或false.一旦这个方法评估所有的字符,并为每个字符返回true或false,我如何在另一个方法中使用这些true或false ...

  4. JAVA获取一个月的开始与结束时间以及两个日期相差几个月

    一.一个月的开始与结束时间代码如下 /*** 获取指定月的开始日期* @param currentDate* @return*/public static Date getStartDate(Stri ...

  5. Java——轻松判断某个时间是否处于某个时间段内

    在日常开发中我们经常会涉及到时间的大小比较或者是判断某个时间是否在某个时间段内,前者很容易,后者略微复杂 今天教大家如何轻松实习时间段的判断! 首先给大家提供一个方法,只需传入你要判断的某个时间和判断 ...

  6. pandas使用bdate_range函数获取起始时间(start)和结束时间(end)范围内的所有周末日期(weekends day)

    pandas使用bdate_range函数获取起始时间(start)和结束时间(end)范围内的所有周末日期(weekends day) #pandas使用bdate_range函数获取起始时间(st ...

  7. pandas使用bdate_range函数获取起始时间(start)和结束时间(end)范围内的所有工作日日期(business day)

    pandas使用bdate_range函数获取起始时间(start)和结束时间(end)范围内的所有工作日日期(business day) #pandas使用bdate_range函数获取起始时间(s ...

  8. java方法返回多个值,使用Pair、Triple

    文章目录 前言 一.返回bean实体类 二.返回map集合 三.返回String[] 四.List<Object> 五.Pair.Triple 5.1 org.apache.commons ...

  9. 【工作记录】java方法返回多个值(用法思考、比较)

    用java写业务逻辑的时候,有时候一个方法可能需要返回多个出参,当中可能有List,String,Map等不同类型的数据结构,针对这种情况,我的解决策略一般是使用Map的形式来解决,具体分析请浏览下文 ...

最新文章

  1. gta5线上小助手_gta5线上助手(xiu改器)使用
  2. 把一个质量为M0 的物体加速到 时间慢100倍 需要多大能量
  3. C# DirectX编程对基本三角形应用平移变换矩阵
  4. MOSS2010单点登录
  5. python杨辉三角_干货|杨辉三角与二项式定理
  6. matlab磁铁模拟,用matlab-模拟环形磁铁的磁场分布
  7. C代码写的比Codex还溜的AI神器开源
  8. 物理运动网站收藏 ╮(╯▽╰)╭
  9. 音视频处理之FFmpeg封装格式20180510
  10. 字体的成本:按字算,微软是100美元
  11. 线性同余法的伪随机数
  12. 从Activiti切换到Camunda的5个理由
  13. 无源贴片晶振四角引脚_晶振厂家告诉你贴片晶振的脚位方向如何区分 - 中山惠源晶工...
  14. webdriver中的截图截图方法
  15. 中兴服务器 raid,超微X9DRH-7F 组装存储服务器RAID5实测
  16. PHP 开发与代码审计(总结)
  17. 大学电路题目怎么搜_电路,中国大学MOOC(慕课)答案公众号搜题
  18. HNUST-OJ-2295:嘉嘉的队伍配置
  19. Java与C语言中的锁
  20. 对于效率施工作业出力的另一途径采用路缘石滑模机

热门文章

  1. 基于form的身份验证怎样设置一个特例(使某页不需要验证)
  2. Solidity合约记录——(三)如何在合约中对操作进行权限控制
  3. Delphi避免重复打开窗体
  4. maven web project打包为war包,目录结构的变化
  5. Windows Server 8 Beta 初体验之三 Active Directory
  6. Exchange2007 中Send as 与Send on behalf of 讲解
  7. CISCO路由器的恢复方法
  8. Django 笔记-20190521
  9. SpringBoot 2.0 系列001 -- 入门介绍以及相关概念
  10. Java中的多线程你只要看这一篇就够了