`
xxxcccvvv
  • 浏览: 9196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

计算两个日期之间的月份列表yyyyMM

阅读更多
/**
	 * 计算两个日期之间的月份列表yyyyMM
	 * @param startTime   yyyyMMddHHmmss
	 * @param endTime     yyyyMMddHHmmss
	 * @return 之间的月份列表
	 */
List<String> yyyyMMList(String startTime, String endTime) {
		
		int syear = Integer.valueOf(startTime.substring(0, 4));
		int smonth = Integer.valueOf(startTime.substring(4, 6));
		int eyear = Integer.valueOf(endTime.substring(0, 4));
		int emonth = Integer.valueOf(endTime.substring(4, 6));

		List<String> yyyymm = new ArrayList<String>();

		if (eyear == syear) {

			if (emonth > smonth) {
				for (int i = smonth; i <= emonth; i++) {
					String ti = "" + i;
					if (ti.length() < 2) {
						ti = "0" + ti;
					}
					yyyymm.add(eyear + ti);
				}
			} else {

				yyyymm.add((eyear + "") + emonth);
			}
		} else if (eyear > syear) {

			for (int yy = syear; yy <= eyear; yy++) {

				if (yy < eyear) {

					if (yy == syear) {
						for (int i = smonth; i <= 12; i++) {

							String ti = "" + i;
							if (ti.length() < 2) {
								ti = "0" + ti;
							}
							yyyymm.add((yy + "") + ti);

						}
					} else {
						for (int i = 1; i < 12; i++) {
							String ti = "" + i;
							if (ti.length() < 2) {
								ti = "0" + ti;
							}
							yyyymm.add((yy + "") + ti);
						}
					}

				}

				if (yy == eyear) {
					for (int i = 1; i <= emonth; i++) {
						String ti = "" + i;
						if (ti.length() < 2) {
							ti = "0" + ti;
						}

						yyyymm.add((yy + "") + ti);
					}
				}

			}
		} else {

		}
		return yyyymm;
	}
分享到:
评论

相关推荐

    java计算两个时间相差月数

    java计算两个时间(yyyy-MM-dd HH:mm:ss)相差月数两个时间格式可为年月日时分秒

    Java日期工具类

    16、计算传入的两个日期之间相差的天数 17、根据传入的年月返回该月的第一天 18、根据传入的年月返回该月最后的一天 19、获得当前月份的第一天 20、获得当前月份的最后一天 21、获取上月的第一天 22、获取上月的最后...

    Java简单计算两个日期月数差的方法

    主要介绍了Java简单计算两个日期月数差的方法,结合实例形式分析了java使用Calendar类进行日期时间操作相关技巧,需要的朋友可以参考下

    日期操作工具类

    * 计算两个日期间的秒数 * @param beginDate * @param endDate * @return * @throws ParseException */ public static long getSecondBetweenDate(String beginDate, String endDate) throws Parse...

    experiment-days-calculator:计算开始日期和最后日期实验之间的天数

    允许用户以以下格式输入两个日期:DD / MM / YYYY-DD / MM / YYYY。 天数不包括重叠的天,即第一天和最后一天。 科学家给出了以下测试案例: 1983年2月6日至1983年6月22日:19天 1984年4月7日-1984年12月25日:173...

    C# 最全的日期正则表达式,没有之一

    了解了以上正则各部分代表的含义,互相间的关系后,就很容易扩展成其它格式的日期正则,如dd/MM/yyyy这种“日月年”格式的日期。 ^(?:(?:(?:0?[1-9]|1[0-9]|2[0-8])([-/.]?)(?:0?[1-9]|1[0-2])|(?:29|30)([-/.]?)(?:...

    mysql的日期和时间函数

    两个参数形式的 WEEK() 允许你指定一周是否以星期日或星期一开始,以及返回值为 0-53 还是 1-52。 这里的一个表显示第二个参数是如何工作的: 值 含义 0 一周以星期日开始,返回值范围为 0-53 1 一周以...

    Excel公式大全操作应用实例(史上最全)

    年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格中自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示...

    hdongix c++

    DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1 DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期 DatePart (interval,...

    java常用工具类的使用

    该类目前推荐使用的构造方法有两个: 构造方法 说明 Date() 按照当前系统时间构造一个Date对象。 Date(long date) 按照给定的时间毫秒值构造一个 Date 对象。 表1 java.util.Date类的构造方法 主要的方法有: ...

    常用js大全,javascript校验大全

    1.3 将日期格式由yyyy-MM-dd,转换为yyyymmdd,以直接比较两个日 期的大小.. 4 1.4 判断字符串是否全部由数字组成. 5 1.5 判断字符串是否全部由字母组成. 6 1.6 对于月和日,如果前面有零,去除,如 01 变为 1 .. 6 ...

    js脚本大全 js验证大全 压缩包

    1.3 将日期格式由yyyy-MM-dd,转换为yyyymmdd,以直接比较两个日 期的大小.. 4 1.4 判断字符串是否全部由数字组成. 5 1.5 判断字符串是否全部由字母组成. 6 1.6 对于月和日,如果前面有零,去除,如 01 变为 1 .. 6 ...

    java时间格式大全(算法源码)

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ParsePosition pos = new ParsePosition(0); Date strtodate = formatter.parse(strDate, pos); return strtodate; } /** * 将长...

    SQL语法大全

    以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。 ------------------------------------------------------------- Recordset属性 adOpenForwardOnly adOpenKeyset ...

    oracle函数大全.doc

    连接两个字符串; SQL&gt; select concat('010-','88888888')||'转23' 高乾竞电话 from dual; 高乾竞电话 ---------------- 010-88888888转23 4.INITCAP 返回字符串并将字符串的第一个字母变为大写; SQL&gt; select initcap...

    MYSQL,SQLSERVER,ORACLE常用的函数

    连接两个字符串; SQL&gt; select concat('010-','88888888')||'转23' 高乾竞电话 from dual; 高乾竞电话 ---------------- 010-88888888转23 4.INITCAP 返回字符串并将字符串的第一个字母变为大写; SQL&gt; select ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。  自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户  创建角色 SQL&gt; create role admin;  授权给...

    Oracle9i的init.ora参数中文说明

    说明: 与 NLS_TIME_FORMAT 相似, 只不过它设置的是 TIMESTAMP 数据类型的默认值, 该数据类型既存储YEAR, MONTH 和 DAY 这几个日期值, 也存储 HOUR, MINUTE 和 SECOND 这几个时间值。 语法: TIMESTAMP '1997-01-31 ...

    oracle数据库经典题目

    4.说明数据库内存结构中SGA和PGA的组成,以及这两个内存区存放信息的区别。 答案: SGA区由数据缓冲区、共享池、重做日志缓冲区、大型池、JAVA池构成;PGA区由排序区、私有SQL区以及堆栈构成。SGA区是由Oracle分配...

Global site tag (gtag.js) - Google Analytics