`
fable0618
  • 浏览: 46681 次
  • 性别: Icon_minigender_2
  • 来自: 火星
文章分类
社区版块
存档分类

给个时间区间,返回该时间区间所包含的日期

 
阅读更多
仅能得到时间垮幅为一个月的,当然可以自己更改(用for循环)。
/**
	 * 时间区间所包含的日期.
	 * @param startDate
	 * @param endDate
	 */
	public String[] formatDate(String startDate, String endDate) {
		String[] date = null;
		if (startDate.equals(endDate)) {// 同一天.
			date = new String[] { endDate };
		} else if (startDate.substring(5, 7).equals(endDate.substring(5, 7))) {// 不同天,同一月.
			int a = Integer.parseInt(endDate.substring(8))
					- Integer.parseInt(startDate.substring(8));
			date = new String[a + 1];
			for (int i = 0; i <= a; i++) {
				date[i] = startDate.substring(0, 8)
						+ (Integer.parseInt(startDate.substring(8)) + i);
			}
		} else {// 不同天,不同月.
			String d[] = endDate.toString().split("-");
			int yy = Integer.parseInt(d[0]);
			int mm = Integer.parseInt(d[1]);
			int dd = Integer.parseInt(d[2]);
			mm = mm - 1;
			if (mm == 2) {
				dd = 28;
			} else if (mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8
					|| mm == 10 || mm == 12) {
				dd = 31;
			} else {
				dd = 30;
			}
			// 判断闰年
			boolean r = yy % 4 == 0 && yy % 100 != 0 || yy % 400 == 0;
			if (r && mm == 2)
				dd++;

			String temp = String.valueOf(yy) + "-"
					+ String.valueOf(mm < 10 ? "0" + mm : mm) + "-"
					+ String.valueOf(dd);
			int a = Integer.parseInt(temp.substring(8))
					- Integer.parseInt(startDate.substring(8));
			int b = Integer.parseInt(endDate.substring(8)) - 1;
			date = new String[a + b + 2];
			for (int i = 0; i <= a; i++) {
				date[i] = startDate.substring(0, 8)
						+ (Integer.parseInt(startDate.substring(8)) + i);
			}
			for (int i = 0; i <= b; i++) {
				date[a + i + 1] = endDate.substring(0, 8)
						+ ((i + 1) < 10 ? "0" + (i + 1) : (i + 1));
			}
		}
		for (int i = 0; i < date.length; i++) {
			System.out.println(date[i]);
		}
		return date;
	}



2010-02-25 和 2010-03-02 返回结果:
2010-02-25
2010-02-26
2010-02-27
2010-02-28
2010-03-01
2010-03-02
2010-02-25
2010-02-26
2010-02-27
2010-02-28
2010-03-01
2010-03-02的数组
分享到:
评论

相关推荐

    java日期时间工具类超级全

    其中包含:获得当前日期 yyyy-MM-dd HH:mm:ss;获取系统当前时间戳;获取当前日期 yy-MM-dd;得到两个时间差 格式yyyy-MM-dd HH:mm:ss;转化long值的日期为yyyy-MM-dd HH:mm:ss.SSS格式的日期;获取当前日期是一个...

    Excel公式与函数大辞典.宋翔(带书签高清文字版).pdf

    3.2 返回当前的日期、时间和指定的日期、时间 121 3.2.1 NOW——返回当前日期和时间 121 3.2.2 TODAY——返回当前日期 123 3.2.3 DATE——返回指定日期的序列号 124 3.2.4 TIME——返回指定时间的序列号 125 ...

    Excel函数活用范例大辞典(全新版).何先军.2015-2(带书签高清文字版).pdf

    本书侧重于函数的实战应用,共分12章,前10章分别介绍了数学函数、统计函数、日期和时间函数、文本函数、逻辑函数、查找和引用函数、财务函数、信息函数以及数据库和三角函数在实战中的应用;第11 章介绍了函数与...

    [php框架]非官方_Kohana_3_中文译本.zip

    获得所给时间处于上午还是下午 转换一个非24小时数字为24小时数字 ■获得一个月有几天 获得一年有几个月 ■获得起始年到终止年中的年份,并转换为数组 获得两个时问戳之间的时差 获得所给出时间和现在的差异 转换UNIX...

    MYSQL常用命令大全

    我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,...

    Sqlserver2000经典脚本

    │ 2.5.3 工作日处理函数(自定义节假日).sql │ │ 2.5.4 计算工作时间的函数.sql │ │ │ └─其他 │ 交叉表.sql │ 任意两个时间之间的星期几的次数-横.sql │ 任意两个时间之间的...

    MySQL命令大全

    我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,...

    C++课程设计基于Qt和MySQL的火车票管理系统源码(含项目说明).zip

    购票时间是你购票的日期,由系统自动获取 退票界面** 首先会弹出一个对话框进行引导操作。在输入框内输入购票记录的序号,再点击退票。这时会弹出一个对话框确认删除,注意退票不可恢复。 改签界面** 首先会弹出一...

    Python Cookbook

    15.6 给一个XML-RPC服务提供一个wxPython GUI 544 15.7 使用Twisted的Perspective Broker 546 15.8 实现一个CORBA服务和客户 549 15.9 使用telnetlib执行远程登录 551 15.10 使用SSH执行远程登录 554 15.11 ...

    经典SQL脚本大全

    │ 任意两个时间之间的星期几的次数-横.sql │ 任意两个时间之间的星期几的次数-纵.sql │ 复杂年月处理.sql │ 统计--交叉表+日期+优先.sql │ ├─第03章 │ │ 3.2 各种字符串分拆处理函数.sql │ │ 3.3 各种...

    freemarker总结

    这里所说的空值,实际上也包括那些并不存在的变量,对于一个Java的 null值而言,我们认为这个变量是存在的,只是它的值为null,但对于FreeMarker模板而言,它无法理解null值,null值和不存在的变 量完全相同. 为了处理缺失...

    微软活动目录管理管理简明手册

    如果树林中的多个域有连续的DNS域名,则该结构称为域树。如^60090102c^所示。 ' C, [0 _7 o0 Q0 w, S" v+ z( D* t7 N 如果相关域树共享相同的活动架构以及目录配置和复制信息,但不共享连续的DNS名称空间,则称之为...

    Excel VBA实用技巧大全 附书源码

    01015获取在Excel主窗口中一个窗口所能占有的最大高度和宽度 01016获取当前打印机名称 01017获取MicrosoftExcel剩余内存 01018获取MicrosoftExcel的总内存 01019获取计算机被Excel占用的内存 01020改变Excel窗口大小...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

     《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第II卷,以开发...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    本书的每一章都提供吸引人的练习题、实践问题和本章知识点回顾以强化所学的知识。本书既是帮助读者轻松地通过oca/ocp认证考试的好帮手,也是oracle从业人员必备的参考书。  本书全面覆盖了1z0-051、1z0-052和1z0-...

Global site tag (gtag.js) - Google Analytics