import java.util.ArrayList;
import java.util.List; public class DateTraveller { public static List<String> getDateList(String startDateString, String endDateString) {
List<String> dateList = new ArrayList<String>();
// start date
int startDate = Integer.parseInt(startDateString);
int startYear = startDate / 10000;
int startMonth = startDate / 100 % 100;
int startDay = startDate % 100;
// end date
int endDate = Integer.parseInt(endDateString);
int endYear = endDate / 10000;
int endMonth = endDate / 100 % 100;
int endDay = endDate % 100;
// begin
int y = startYear;
int m = startMonth;
int d = startDay;
while (y < endYear || y == endYear && m < endMonth || y == endYear && m == endMonth && d <= endDay) {
// System.out.println(y + "-" + m + "-" + d + " vs. " + endYear + "-" + endMonth + "-" + endDay + " : " +
// (y < endYear) + "," + (y == endYear && m < endMonth) + "," + (y == endYear && m == endMonth && d <= endDay)
// );
String tmpDateString = String.format("%d%02d%02d", y, m, d);
dateList.add(tmpDateString);
boolean isRunNian = (y % 400 == 0 || y % 4 == 0 && y % 100 != 0);
int lastDay = 31;
if (m == 2) {
if (isRunNian) lastDay = 29;
else lastDay = 28;
}
else if (m <= 7 && m % 2 == 0 || m > 7 && m % 2 == 1) {
lastDay = 30;
}
if (d >= lastDay) {
m ++;
d = 1;
if (m > 12) {
y ++;
m = 1;
}
}
else {
d ++;
}
}
return dateList;
} // test
public static void main(String[] args) {
List<String> dateList = getDateList("20151203", "20160301");
for (String dateS : dateList) {
System.out.println(dateS);
}
} }

Java遍历日期代码的更多相关文章

  1. java常用用代码

    /** *Java获取IP代码 */ import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.ev ...

  2. java学用代码

    /** *Java获取IP代码 */ import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.ev ...

  3. 【转】JAVA 8 日期/时间(Date Time)API指南

    前言 本来想写下Java 8的日期/时间API,发现已经有篇不错的文章了,那就直接转载吧~ PS:主要内容没变,做了部分修改. 原文链接: journaldev 翻译: ImportNew.com - ...

  4. Java基础(37):Java中日期的显示与格式定值----Date与SimpleDateFormat的试用

    使用 Date 和 SimpleDateFormat 类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取 ...

  5. 记一个JAVA关于日期的坑

    JAVA解析日期格式代码,之前一直写成:“yyyy-MM-dd hh:mm”,比如"2016-01-18 11:00"."2016-01-18 15:00"都可 ...

  6. 分享非常有用的Java程序 (关键代码) (一)

    原文:分享非常有用的Java程序 (关键代码) (一)   分享一些非常有用的Java程序 (关键代码) ,希望对你有所帮助. 1.  得到当前方法的名字 String methodName = Th ...

  7. java获取日期之间的差异

    转载请注明出处.谢谢http://blog.csdn.net/harryweasley/article/details/42121485 当想到要计算差值.我们肯定想的是"2014.12.1 ...

  8. java 遍历List 和 Map的几种方法

    java遍历List 1.(性能最差) for(String tmp:list) { //System.out.println(tmp); } 2.(性能最好) for(int i = 0; i &l ...

  9. Java 8 日期时间 API

    转自:https://www.runoob.com/java/java8-datetime-api.html Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与 ...

随机推荐

  1. Jquery Ajax跨域访问

    一.同源策略 二.跨域的集中方法: 1.服务器端发送请求,服务器作为中继代理(此方法不理解) 2.iframe 3.script标签 通过动过动态生成script标签,并将src指向目标源的方式(im ...

  2. idea远程debug调试阿里云ECS

    1.首先远程服务器的代码跟本地项目代码应该完全一致,否则会出现debug混乱现象,亲测. 2.config如图: ①命名可以省略②复制这个地址③输入远程ip和自定义且未被占用的端口号xxxx 3.开放 ...

  3. Django后台中文乱码

    无论如何,刚开始一定要写上默认编码utf8!!!!!! 第一种办法: 检查 ...\Lib\site-packages\Django-1.10.2-py2.7.egg\django\conf\loca ...

  4. 函数指针,使用qsort,进行结构体排序

    #include <stdio.h> #include <stdlib.h> #define STU_NAME_LEN 16 /*学生信息*/ typedef struct s ...

  5. 通用编程语言 Dragon

    Dragon 是一种创新和实用的通用语言.所支持的编程范例是命令式的.过程式的.面向对象的.使用嵌套结构的声明式的.该语言是可移植的(Windows.Linux.macOS.Android等),可用于 ...

  6. 引入其他服务的JS、和 本地的JS文件,script的属性

    ==============使用其他服务器引入JS文件,1,减轻服务器压力2,速度快3,可以缓存 cdnjs库,更新比较快https://cdnjs.com/ cdn库 引入JS文件如:jqueryb ...

  7. AS400 printer setting

    (1) CRTOUTQ OUTQ(TESTLIB/PRINTER2) (2) CRTDEVPRT ===> CRTDEVPRT DEVD(PRINTER2) DEVCLS(*LAN) TYPE( ...

  8. c++学生信息管理系统(window控制台实现鼠标点击操作)

    翻起大一时写过的作业代码--一个学生信息管理系统,当时不会使用QT,不会MFC等库,只会c++,但是又想做一个有界面的,能够实现鼠标操作的程序.于是绞尽脑汁查资料,自己造轮子,最终写出来了下面的这个现 ...

  9. uoj #139

    树链剖分//模板题由于存在换根操作对所有关于节点 u 的修改和查询操作进行分类讨论若 Root 在 u 的子树中,则不处理 u 所在的 Root 的那颗子树否则不会有影响寻找 Root 所在的那颗子树 ...

  10. divisors 数学

    divisors 数学 给定\(m\)个不同的正整数\(a_1, a_2,\cdots, a_m\),请对\(0\)到\(m\)每一个\(k\)计算,在区间\([1, n]\)里有多少正整数是\(a\ ...