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. 修改git提交的用户名和密码

    目的:每个项目自定义Git提交的用户名和邮箱 1.在本地找到某个项目所在的地址 2.找到config文件 3.增加如下配置 4. ok,这样每个项目都可以定义提交者姓名和邮箱了

  2. ES6遍历器 生成器 学习整理

    遍历器[迭代器](Iterator) 就是这样一种机制.它是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所 ...

  3. css3多列布局瀑布流加载样式

    看了一些网站的瀑布流加载,正好看到css3的多列属性,尝试着写了一个css做布局的瀑布流. 直接上代码: <!DOCTYPE html> <html lang="en&qu ...

  4. Lavavel Lifecycle

  5. Linux 理解Linux的memory overcommit 与 OOM Killer

    Memory Overcommit的意思是操作系统承诺给进程的内存大小超过了实际可用的内存.一个保守的操作系统不会允许memory overcommit,有多少就分配多少,再申请就没有了,这其实有些浪 ...

  6. 三十六.MHA集群概述 、 部署MHA集群 测试配置

    1.准备MHA集群环境 准备6台虚拟机,并按照本节规划配置好IP参数 在这些虚拟机之间实现SSH免密登录 在相应节点上安装好MHA相关的软件包   使用6台RHEL 7虚拟机,如图-1所示.准备集群环 ...

  7. $noip2018$游记+考后总结

    游记部分 Day-5 - Day0 敲了敲模板,打了几场模拟赛,都在颓废,其他什么都没做 Day1 早上继续写模板,水了会QQ,其他什么都没做 中午试图背模板,没成功(其实下午才发现敲的模板一个没用上 ...

  8. ROS模拟

    亲测,在古月大大这篇博客中的一条命令最好改为rostopic pub /cmd_vel geometry/Twist -r 10 -- '[0.2,0,0]' '[0,0,0.5]'. http:// ...

  9. python3 系统监控脚本(CPU,memory,网络,disk等)

    #!/usr/bin/env python3 #create at 2018-11-30 'this is a system monitor scripts' __author__="yjt ...

  10. centos 7 启动docker失败。

    刚安装docker-io,在启动的时候报如下错误: Error starting daemon: SELinux is not supported with the overlay2 graph dr ...