`

Java 计算月份跨度并获取中间值

    博客分类:
  • Java
阅读更多
	/**
	 * 求日期月份跨度
	 * @param date1
	 * @param date2
	 * @return
	 * @throws Exception
	 * @作者 80303857
	 */
	public static List<String> getMs (String date1, String date2) throws Exception{
		List<String> result = new ArrayList<String>();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        c1.setTime(sdf.parse(date1));
        c2.setTime(sdf.parse(date2));
		int m1 = c1.get(Calendar.MONTH)+1;
		int m2 = c2.get(Calendar.MONTH)+1;
		int y1 = c1.get(Calendar.YEAR);
		int y2 = c2.get(Calendar.YEAR);
		
		while (y1!=y2||m1!=m2){
			StringBuffer sb = new StringBuffer();
			if(y1!=y2){
				if (y1<y2){
					sb.append(y1).append(m1<10?"0"+m1:m1);
					result.add(sb.toString());
					m1++;
					if (m1>12){
						y1++;
						m1=1;
					}
				}else{
					sb.append(y2).append(m2<10?"0"+m2:m2);
					result.add(sb.toString());
					m2++;
					if (m2>12){
						y2++;
						m2=1;
					}
				}
			}else{
				if (m1<m2){
					sb.append(y1).append(m1<10?"0"+m1:m1);
					result.add(sb.toString());
					m1++;
				}else{
					sb.append(y2).append(m2<10?"0"+m2:m2);
					result.add(sb.toString());
					m2++;
				}
			}
		}
		return result;
	}

 比如2016-11-01至2017-02-03那么返回结果为201611,201612,101701。并不会包含最后一个值或相等月份的值。

分享到:
评论

相关推荐

    1063 最大跨度值.cpp

    给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。 【输入】 一共2行,第一行为序列的个数n(1 ≤ n ≤ 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个...

    java获取时间大全

    Java获取时间是一个重要的编程任务,尤其在开发过程中处理日期和时间相关的逻辑时。Java提供了多种方式来操作和格式化时间,这些方法分布在不同的类和包中。以下是对这些知识点的详细说明: 1. **基础时间类:** -...

    JAVA版身份证获取性别、出生日期及年龄

    结合以上三个方法,我们可以轻松地从身份证号码中获取并处理个人信息。在实际应用中,为了提高代码的可维护性和复用性,通常会封装成一个类,如`IdCardInfo`,包含这些功能: ```java public class IdCardInfo { ...

    1063:最大跨度值.cpp

    给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。 【输入】 一共2行,第一行为序列的个数n(1 ),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。 ...

    1063最大跨度值.cpp

    1063最大跨度值.cpp

    HTraceFlooder:用于测试通过 Java 客户端发送到 HTrace 的跨度

    它以可配置的速率通过 Java 客户端将跨度发送到 HTrace。 用法 建造 git clone https://github.com/cmccabe/HTraceFlooder.git cd HTraceFlooder/ mvn package ls -l target/HTraceFlooder.jar 用法 如果您安装了 ...

    利用CTime做的预售期计算器,可计算时间跨度

    灵感来自于春节买火车票时预售期的计算,提示预售20日内的火车票,但是最晚能买到具体哪一天,有时候算起来很麻烦,就得对着日历一个一个的数,再遇到是否包含今日的问题,真是很麻烦! 其实CTime类早就处理好了了...

    java日历各种写法

    Java日历类是Java编程语言中处理日期和时间的核心组件,它提供了丰富的API来操作日期,包括获取、设置、比较和格式化等。在Java中,`java.util.Calendar`是抽象基类,而`java.util.GregorianCalendar`是其最常见的...

    某大跨度双层球面网壳结构内力分析

    综上所述,本文深入探讨了大跨度双层球面网壳结构内力分布的规律,通过采用有限元分析方法,对网壳的上弦、下弦和腹杆的内力进行了详尽的分析,并得到了一系列有价值的结论。这些结论不仅为该工程的设计提供了理论...

    ElasticSearch Java API 中文文档

    标题《ElasticSearch Java API 中文文档》表明本篇文档的主要内容是关于ElasticSearch的Java API的中文使用说明和相关知识点介绍。ElasticSearch是一个基于Lucene构建的开源搜索引擎,它提供了一个分布式、多用户...

    浅谈大跨度钢筋混凝土矩形暗道的计算

    现浇钢筋混凝土矩形暗道在井工矿、露天矿、选煤厂等带式输送机走廊中应用较多,为了满足带式输送机的使用要求,暗道跨度经常需要做到很大,从结构受力特性考虑,需要在大跨度暗道中间设置立柱,在已有的管道计算理论中尚...

    Java_用于报告传输(如http或kafka)上的zipkin跨度的共享库.zip

    3. 创建和记录跨度:在代码中创建跨度,记录服务之间的调用信息,并使用报告器发送这些信息。 4. 错误处理:处理报告失败的情况,例如通过重试机制确保数据最终能够送达。 在"说明.txt"文件中,可能包含了关于如何...

    视觉跨度问题论文

    - **研究目标**:本文旨在探究如何通过训练减少拥挤效应(crowding effect),从而扩大视觉跨度并提高阅读速度。 #### 二、视觉跨度与拥挤效应 - **拥挤效应定义**:拥挤效应是指当周围存在干扰元素时,个体对目标...

    历年计算机等级考试Java真题—word版(含答案)

    【标题】"历年计算机等级考试Java真题—word版(含答案)"揭示了这个压缩包文件的内容主要是针对计算机等级考试中的Java编程部分的历年真题集,且以Word文档的形式提供,方便考生查阅和练习。这个资源对于备考计算机...

    日历调整、时间调整、时间预测、以及Java.util包和Java.test包的简单运用,其中包含10个源代码文件,只需导入eclipse中即可编译、运行。

    `java.time.Duration.between()`方法返回两个`Instant`对象之间的时间跨度,而`java.time.Period.between()`用于日期之间的间隔。 至于`Java.test`包,它是JUnit测试框架的一部分,通常用于编写单元测试。在源代码...

    java万年历源代码

    【Java万年历源代码】是一个关于编程的项目,主要使用Java语言实现了一款功能全面的日历系统,能够处理从公元1年至公元9999年的日期计算,涵盖了相当长的时间跨度,因此被称为"万年历"。这个项目对于学习Java编程、...

    Java万年历(代码及运行结果)

    这个程序通常包含了一个核心的日期计算算法,用于处理不同年份、月份和日期之间的转换,并能考虑到闰年和非闰年的差异。 在Java中,实现万年历涉及到以下几个关键知识点: 1. **日期时间类库**:Java提供了多种...

    Java日期计算之Joda-Time

    学习并熟练掌握Joda-Time库对于提升Java日期时间处理能力非常有帮助,特别是在处理复杂的业务逻辑和需要精确时间计算的应用中。通过实践和阅读博客文章"Java日期计算之Joda-Time",开发者可以更深入地理解这个强大的...

    最大跨度值(信息学奥赛一本通-T1063).rar

    5. **滑动窗口**:如果要求的是在连续子数组中的最大跨度,可以使用滑动窗口方法,维护一个窗口大小,并在每次移动窗口时计算当前窗口内的最大跨度,更新最大值。 6. **二分查找**:在某些特定情境下,如数组已经...

    用java编写的日历的程序

    在Java 8之前,日期和时间的处理主要依赖于`java.util.Date`和`java.util.Calendar`类,但这两个类的API设计并不理想,易用性较差。自Java 8开始,引入了`java.time`包,提供了更直观、更易于使用的`LocalDate`、`...

Global site tag (gtag.js) - Google Analytics