获得两个日期(字符串)之间的所有日期
2013-06-26 18:03
323 查看
在程序中有时候这样的情况就是获取时间段中的时间集合进行处理,这几天做了一个excel导出,根绝时间段查询生成不同的天数标题数据。
相对来说比较准确。
Java代码
1./**
2. * 获得两个日期(字符串)之间的所有日期
3. *
4. * @param start_date
5. * String 开始日期 EX:"20120101" 强制输入参数
6. * @param end_date
7. * String 结束日期 EX:"20120102" 强制输入参数
8. * @return
9. */
10. public static List<String> getDatesBetween2Date(String start_date, String end_date) {
11. List<String> result = new ArrayList<String>();
12. try {
13. start_date = StringUtils.trim(start_date);
14. end_date = StringUtils.trim(end_date);
15. if (StringUtils.isEmpty(start_date) || StringUtils.isEmpty(end_date)) {
16. return result;
17. }
18.
19. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
20. int recAfter = diffDate(sdf.parse(end_date), sdf.parse(start_date));
21. if (recAfter < 0) {
22. String temp = start_date;
23. start_date = end_date;
24. end_date = temp;
25. recAfter = -1 * recAfter;
26. }
27. result.add(start_date);
28. String tempStart_date = new String(start_date.getBytes("UTF-8"), "UTF-8");
29. while (recAfter > 0) {
30. tempStart_date = DateUtil.turnDate(tempStart_date, "yyyyMMdd", 1);
31. result.add(tempStart_date);
32. recAfter--;
33. }
34.
35. }
36. catch (Exception e) {
37. e.printStackTrace();
38. }
39. return result;
40. }
46. public static String turnDate(String showDate, String format, int interDay) {
47. // 日期加指定天数
48. Calendar cal = Calendar.getInstance();
49. Date tempDate_001 = DateUtil.parseDate(showDate, format);
50. if (null == tempDate_001) {
51. return null;
52. }
53. cal.setTime(tempDate_001);
54. cal.add(Calendar.DAY_OF_MONTH, interDay);
55. String next = DateUtil.formatDate(cal.getTime(), format);
56. return next;
57. }
/**
* 获得两个日期(字符串)之间的所有日期
*
* @param start_date
* String 开始日期 EX:"20120101" 强制输入参数
* @param end_date
* String 结束日期 EX:"20120102" 强制输入参数
* @return
*/
public static List<String> getDatesBetween2Date(String start_date, String end_date) {
List<String> result = new ArrayList<String>();
try {
start_date = StringUtils.trim(start_date);
end_date = StringUtils.trim(end_date);
if (StringUtils.isEmpty(start_date) || StringUtils.isEmpty(end_date)) {
return result;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
int recAfter = diffDate(sdf.parse(end_date), sdf.parse(start_date));
if (recAfter < 0) {
String temp = start_date;
start_date = end_date;
end_date = temp;
recAfter = -1 * recAfter;
}
result.add(start_date);
String tempStart_date = new String(start_date.getBytes("UTF-8"), "UTF-8");
while (recAfter > 0) {
tempStart_date = DateUtil.turnDate(tempStart_date, "yyyyMMdd", 1);
result.add(tempStart_date);
recAfter--;
}
}
catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static String turnDate(String showDate, String format, int interDay) {
// 日期加指定天数
Calendar cal = Calendar.getInstance();
Date tempDate_001 = DateUtil.parseDate(showDate, format);
if (null == tempDate_001) {
return null;
}
cal.setTime(tempDate_001);
cal.add(Calendar.DAY_OF_MONTH, interDay);
String next = DateUtil.formatDate(cal.getTime(), format);
return next;
}
写个main方法调用:
Java代码
1.System.out.println(DateUtil.getDatesBetween2Date("20120101", "20120104"));
System.out.println(DateUtil.getDatesBetween2Date("20120101", "20120104"));
返回的是一个 list集合: 20120101、 20120102 、 20120103、 20120101 这样的集合。
相对来说比较准确。
Java代码
1./**
2. * 获得两个日期(字符串)之间的所有日期
3. *
4. * @param start_date
5. * String 开始日期 EX:"20120101" 强制输入参数
6. * @param end_date
7. * String 结束日期 EX:"20120102" 强制输入参数
8. * @return
9. */
10. public static List<String> getDatesBetween2Date(String start_date, String end_date) {
11. List<String> result = new ArrayList<String>();
12. try {
13. start_date = StringUtils.trim(start_date);
14. end_date = StringUtils.trim(end_date);
15. if (StringUtils.isEmpty(start_date) || StringUtils.isEmpty(end_date)) {
16. return result;
17. }
18.
19. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
20. int recAfter = diffDate(sdf.parse(end_date), sdf.parse(start_date));
21. if (recAfter < 0) {
22. String temp = start_date;
23. start_date = end_date;
24. end_date = temp;
25. recAfter = -1 * recAfter;
26. }
27. result.add(start_date);
28. String tempStart_date = new String(start_date.getBytes("UTF-8"), "UTF-8");
29. while (recAfter > 0) {
30. tempStart_date = DateUtil.turnDate(tempStart_date, "yyyyMMdd", 1);
31. result.add(tempStart_date);
32. recAfter--;
33. }
34.
35. }
36. catch (Exception e) {
37. e.printStackTrace();
38. }
39. return result;
40. }
46. public static String turnDate(String showDate, String format, int interDay) {
47. // 日期加指定天数
48. Calendar cal = Calendar.getInstance();
49. Date tempDate_001 = DateUtil.parseDate(showDate, format);
50. if (null == tempDate_001) {
51. return null;
52. }
53. cal.setTime(tempDate_001);
54. cal.add(Calendar.DAY_OF_MONTH, interDay);
55. String next = DateUtil.formatDate(cal.getTime(), format);
56. return next;
57. }
/**
* 获得两个日期(字符串)之间的所有日期
*
* @param start_date
* String 开始日期 EX:"20120101" 强制输入参数
* @param end_date
* String 结束日期 EX:"20120102" 强制输入参数
* @return
*/
public static List<String> getDatesBetween2Date(String start_date, String end_date) {
List<String> result = new ArrayList<String>();
try {
start_date = StringUtils.trim(start_date);
end_date = StringUtils.trim(end_date);
if (StringUtils.isEmpty(start_date) || StringUtils.isEmpty(end_date)) {
return result;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
int recAfter = diffDate(sdf.parse(end_date), sdf.parse(start_date));
if (recAfter < 0) {
String temp = start_date;
start_date = end_date;
end_date = temp;
recAfter = -1 * recAfter;
}
result.add(start_date);
String tempStart_date = new String(start_date.getBytes("UTF-8"), "UTF-8");
while (recAfter > 0) {
tempStart_date = DateUtil.turnDate(tempStart_date, "yyyyMMdd", 1);
result.add(tempStart_date);
recAfter--;
}
}
catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static String turnDate(String showDate, String format, int interDay) {
// 日期加指定天数
Calendar cal = Calendar.getInstance();
Date tempDate_001 = DateUtil.parseDate(showDate, format);
if (null == tempDate_001) {
return null;
}
cal.setTime(tempDate_001);
cal.add(Calendar.DAY_OF_MONTH, interDay);
String next = DateUtil.formatDate(cal.getTime(), format);
return next;
}
写个main方法调用:
Java代码
1.System.out.println(DateUtil.getDatesBetween2Date("20120101", "20120104"));
System.out.println(DateUtil.getDatesBetween2Date("20120101", "20120104"));
返回的是一个 list集合: 20120101、 20120102 、 20120103、 20120101 这样的集合。
相关文章推荐
- java获得两个日期之间的所有月份
- 获得两个日期之间的所有日期
- 手把手地写了一个函数,计算出两个字符串日期之间的所有字符串型日期 集合
- java获得两个日期之间的所有月份
- 【oracle】获得两个日期之间的所有日期
- javascript根据已知两个日期,获得两个日期之间的所有数据
- 手把手地写了一个函数,计算出两个字符串日期之间的所有字符串型日期 集合
- java+javascript获得两个日期之间的所有月份
- 获得两个日期之间的所有日期
- java获得两个日期之间的所有月份和所有
- PHP获取两个时间之间的年和月份及间隔天数 PHP两个日期之间的所有日期
- 遍历两个日期之间的所有日期
- 获得两个日期之间的工作日的天数
- python 如何将字符串转化为datetime.date【获取指定日期的上月和两个日期之间相差的月数】
- 【叶子函数分享四十九】生成两个时间之间的所有日期
- js实现获取两个日期之间所有日期的方法
- C#中如何获得两个日期之间的天数差 ( c# 计算两个日期之间相差的天数 )
- JAVA取两个日期之间日期转成字符串_hanCSDN_20130426
- js中将两个日期字符串相减 获得天数
- java获取两个字符串日期之间间隔的天数