我是靠谱客的博主 忧心橘子,最近开发中收集的这篇文章主要介绍获取两个日期之间的所有日期,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述



1.遇到了一个要获取在某个两个日期之间的所有日期,比如20150101到20150105之间的所有的日期,就是20150102,20150103,20150104。


截取源码:

/**
* 获取两个日期间的所有日期
* @author lvxinrong
*/
public static ArrayList<String> getTwoDaysTotalDays(String date1, String date2) {
ArrayList<String> L = new ArrayList<String>();
if (date1.equals(date2)) {
System.out.println("两个日期相等!");
return L;
}
String tmp;
if (date1.compareTo(date2) > 0) { // 确保 date1的日期不晚于date2
tmp = date1;
date1 = date2;
date2 = tmp;
}

tmp = format.format(str2Date(date1).getTime() + 3600 * 24 * 1000);

int num = 0;
while (tmp.compareTo(date2) < 0) {
L.add(tmp);
num++;
tmp = format.format(str2Date(tmp).getTime() + 3600 * 24 * 1000);
}


if (num == 0)
System.out.println("两个日期相邻!");
return L;
}
private static Date str2Date(String str) {
if (str == null)
return null;


try {
return format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}


/**
* 判断是否闰年

* @param year
* @return
*/
public static boolean isLeapYear(int year) {
return (year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0));
}


/**
* 一个月有几天

* @param year
* @param month
* @return
*/
public static int dayInMonth(int year, int month) {
boolean yearleap = isLeapYear(year);
int day;
if (yearleap && month == 2) {
day = 29;
} else if (!yearleap && month == 2) {
day = 28;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
day = 30;
} else {
day = 31;
}
return day;
}

最后

以上就是忧心橘子为你收集整理的获取两个日期之间的所有日期的全部内容,希望文章能够帮你解决获取两个日期之间的所有日期所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部