解决方案 »
- spring mvc 后台数据存储到session 避免多个人同时操作出现信息不可用 如何做?
- 根据方法名利用反射机制调用该方法
- 如下javabean代码缩略图象时严重失真,请问如何处理啊.
- 从eclipse启动Tomcat的问题
- 函数里的循环,当执行第2遍的时候就跳出循环体了.
- 关于递归的问题
- 错误的解答。。。(希望高手能来帮我下下)
- http://www.2qq.cn/vip.htm?qq=282232 腾讯过大年,六位数的QQ不要要钱,点击马上申请!看看有分。呵呵,
- 怎样用Jfreechart提供的开发包啊?我的程序运行不起来!
- 关于jbuilder的一个小问题!
- static代码块
- 一个小问题。
http://topic.csdn.net/u/20100520/19/5f33d746-0280-4727-8a30-779957a6d09d.html
[10-5-27 17:39:31:921 CST] 578939a1 SystemOut O 2009
[10-5-27 17:39:31:921 CST] 578939a1 SystemOut O 整月
[10-5-27 17:39:31:921 CST] 578939a1 SystemOut O 200805
[10-5-27 17:39:31:921 CST] 578939a1 SystemOut O 200806
[10-5-27 17:39:31:921 CST] 578939a1 SystemOut O 200807
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 200808
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 200809
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 200810
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 200811
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 200812
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 201001
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 201002
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 201003
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 201004
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 整日
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080502
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080503
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080504
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080505
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080506
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080507
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080508
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080509
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080510
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080511
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080512
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080513
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080514
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080515
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080516
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080517
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080518
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080519
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080520
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080521
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080522
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080523
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080524
[10-5-27 17:39:31:922 CST] 578939a1 SystemOut O 20080525
[10-5-27 17:39:31:923 CST] 578939a1 SystemOut O 20080526
[10-5-27 17:39:31:923 CST] 578939a1 SystemOut O 20080527
[10-5-27 17:39:31:923 CST] 578939a1 SystemOut O 20080528
[10-5-27 17:39:31:923 CST] 578939a1 SystemOut O 20080529
[10-5-27 17:39:31:923 CST] 578939a1 SystemOut O 20080530
[10-5-27 17:58:16:754 CST] 578939a1 SystemOut O 整年
[10-5-27 17:58:16:754 CST] 578939a1 SystemOut O 2009
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 整月
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 200805
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 200806
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 200807
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 200808
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 200809
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 200810
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 200811
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 200812
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 201001
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 201002
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 201003
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 201004
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 整日
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080505
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080506
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080507
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080508
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080509
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080510
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080511
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080512
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080513
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080514
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080515
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080516
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080517
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080518
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080519
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080520
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080521
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080522
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080523
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080524
[10-5-27 17:58:16:755 CST] 578939a1 SystemOut O 20080525
[10-5-27 17:58:16:756 CST] 578939a1 SystemOut O 20080526
[10-5-27 17:58:16:756 CST] 578939a1 SystemOut O 20080527
[10-5-27 17:58:16:756 CST] 578939a1 SystemOut O 20080528
[10-5-27 17:58:16:756 CST] 578939a1 SystemOut O 20080529
[10-5-27 17:58:16:756 CST] 578939a1 SystemOut O 20080530
lts.add(sdf.format(start.getTime()));
start.add(step, 1);
}
[10-5-27 18:20:51:467 CST] 47497e76 SystemOut O 2009
[10-5-27 18:20:51:467 CST] 47497e76 SystemOut O 2010
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 整月
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 200805
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 200806
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 200807
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 200808
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 200809
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 200810
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 200811
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 200812
[10-5-27 18:20:51:468 CST] 47497e76 SystemOut O 整日
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;/**
*
*
*/
public class DateBetween { public static void main(String[] args) {
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
start.set(2008, 4, 1);// 2008年5月1日
end.set(2010, 4, 27);// 2010年5月27日
List[] rtnLists = getDateFigure(start.getTime(), end.getTime()); for (int i = 0; i < rtnLists.length; i++) {
List lt = rtnLists[i];
switch (i) {
case 0:
System.out.println("整年");
break;
case 1:
System.out.println("整月");
break;
default:
System.out.println("整日");
break;
}
for(int j = 0;j<lt.size();j++){
System.out.println(lt.get(j));
}
}
} /**
*
* @param dStart 起始日期
* @param dEnd 结束日期
* @return 整年、整月、整日的数组
*/
public static List[] getDateFigure(Date dStart, Date dEnd) {
//@SuppressWarnings("unchecked")
List[] rtnLists = new List[3]; List ltYear = new ArrayList();
List ltMonths = new ArrayList();
List ltDays = new ArrayList();
rtnLists[0] = ltYear;
rtnLists[1] = ltMonths;
rtnLists[2] = ltDays;
//如果起始日期大于结束日期,返回空数组
if (dStart.after(dEnd)) {
return rtnLists;
} SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyyMM");
SimpleDateFormat sdfDay = new SimpleDateFormat("yyyyMMdd");
Calendar start = Calendar.getInstance();
start.setTime(dStart);
Calendar end = Calendar.getInstance(); //Calendar.DAY_OF_YEAR 返回指定年的天数
//Calendar.DAY_OF_MONTH 返回指定月的天数
// 非1月1号
if (start.get(Calendar.DAY_OF_YEAR) != 1) {
// 非每月1号
if (start.get(Calendar.DAY_OF_MONTH) != 1) {
// 设置到当年月末
end.set(start.get(Calendar.YEAR),
start.get(Calendar.MONTH) + 1, 1);
//end.add(Calendar.DAY_OF_MONTH, -1);
if (end.getTime().after(dEnd)) {
end.setTime(dEnd);
}
add(sdfDay,Calendar.DAY_OF_MONTH,ltDays, start, end);
}
// 设置结束日期到年末
if (start.get(Calendar.MONTH) != 0) {
end.set(start.get(Calendar.YEAR), 11, 31);
if (end.getTime().after(dEnd)) {
end.setTime(dEnd);
end.set(Calendar.DAY_OF_MONTH, 1);
}
add(sdfMonth,Calendar.MONTH,ltMonths, start, end);
}
} // 设置结束日期
end.setTime(dEnd);
if (end.get(Calendar.MONTH)==11 && end.get(Calendar.DAY_OF_MONTH)==31) {
end.add(Calendar.YEAR, 1);
}
end.set(Calendar.DAY_OF_YEAR, 1);
//end.set(Calendar.MONTH, 0);
while (end.after(start)) {
ltYear.add(sdfYear.format(start.getTime()));
start.add(Calendar.YEAR, 1);
}
//add(sdfYear,Calendar.YEAR,ltYear,start,end);
// 设置结束日期
end.setTime(dEnd);
end.set(Calendar.DAY_OF_MONTH, 1);
add(sdfMonth,Calendar.MONTH,ltMonths, start, end); // 设置结束日期
end.setTime(dEnd);
end.add(Calendar.DAY_OF_YEAR, 1);
add(sdfDay,Calendar.DAY_OF_MONTH,ltDays, start, end);
return rtnLists;
}
/**
*
* @param sdf 日期格式
* @param step 字段类型
* @param lts 存放位置
* @param start 起始日期
* @param end 结束日期
*/
private static void add(SimpleDateFormat sdf,int step,List lts, Calendar start,
Calendar end) {
while (end.after(start)) {
lts.add(sdf.format(start.getTime()));
start.add(step, 1);
} }}整个换成这样看看
顺便把打印结果也贴下
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;public class DateBetween { public static void main(String[] args) {
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
start.set(2008, 4,10);// 2008年5月1日
end.set(2010, 7, 20);// 2010年5月27日
List[] rtnLists = getDateFigure(start.getTime(), end.getTime()); for (int i = 0; i < rtnLists.length; i++) {
List lt = rtnLists[i];
switch (i) {
case 0:
System.out.println("整年");
break;
case 1:
System.out.println("整月");
break;
default:
System.out.println("整日");
break;
}
for(int j = 0;j<lt.size();j++){
System.out.println(lt.get(j));
}
}
} /**
*
* @param dStart 起始日期
* @param dEnd 结束日期
* @return 整年、整月、整日的数组
*/
public static List[] getDateFigure(Date dStart, Date dEnd) {
//@SuppressWarnings("unchecked")
List[] rtnLists = new List[3]; List ltYear = new ArrayList();
List ltMonths = new ArrayList();
List ltDays = new ArrayList();
rtnLists[0] = ltYear;
rtnLists[1] = ltMonths;
rtnLists[2] = ltDays;
//如果起始日期大于结束日期,返回空数组
if (dStart.after(dEnd)) {
return rtnLists;
} SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyyMM");
SimpleDateFormat sdfDay = new SimpleDateFormat("yyyyMMdd");
Calendar start = Calendar.getInstance();
start.setTime(dStart);
Calendar end = Calendar.getInstance(); //Calendar.DAY_OF_YEAR 返回指定年的天数
//Calendar.DAY_OF_MONTH 返回指定月的天数
// 非1月1号
if (start.get(Calendar.DAY_OF_YEAR) != 1) {
// 非每月1号
if (start.get(Calendar.DAY_OF_MONTH) != 1) {
// 设置到当年月末
end.set(start.get(Calendar.YEAR),
start.get(Calendar.MONTH) + 1, 1);
end.add(Calendar.DAY_OF_MONTH, -1);
if (end.getTime().after(dEnd)) {
end.setTime(dEnd);
}
add(sdfDay,Calendar.DAY_OF_MONTH,ltDays, start, end);
} end.setTime(dEnd);
// 设置结束日期到年末
if (start.get(Calendar.MONTH) != 0 && start.get(Calendar.YEAR) < end.get(Calendar.YEAR) ) {
end.set(start.get(Calendar.YEAR), 11, 31);
if (end.getTime().after(dEnd)) {
end.setTime(dEnd);
end.set(Calendar.DAY_OF_MONTH, 1);
}
add(sdfMonth,Calendar.MONTH,ltMonths, start, end);
}
} // 设置结束日期
end.setTime(dEnd);
if (start.get(Calendar.YEAR) < end.get(Calendar.YEAR)) {
end.set(Calendar.DAY_OF_YEAR, 1);
end.add(Calendar.DAY_OF_YEAR, -1);
add(sdfYear,Calendar.YEAR,ltYear,start,end);
}
// 设置结束日期
end.setTime(dEnd);
end.set(Calendar.DAY_OF_MONTH, 1);
end.add(Calendar.DAY_OF_YEAR, -1);
add(sdfMonth,Calendar.MONTH,ltMonths, start, end); // 设置结束日期
end.setTime(dEnd);
add(sdfDay,Calendar.DAY_OF_MONTH,ltDays, start, end);
return rtnLists;
}
/**
*
* @param sdf 日期格式
* @param step 字段类型
* @param lts 存放位置
* @param start 起始日期
* @param end 结束日期
*/
private static void add(SimpleDateFormat sdf,int step,List lts, Calendar start,
Calendar end) {
while (end.after(start) || end.equals(start)) {
lts.add(sdf.format(start.getTime()));
start.add(step, 1);
}
}}
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;public class DateBetween { public static void main(String[] args) {
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
start.set(2008, 4,1);// 2008年5月1日
end.set(2010, 3, 30);// 2010年5月27日
List[] rtnLists = getDateFigure(start.getTime(), end.getTime()); for (int i = 0; i < rtnLists.length; i++) {
List lt = rtnLists[i];
switch (i) {
case 0:
System.out.println("整年");
break;
case 1:
System.out.println("整月");
break;
default:
System.out.println("整日");
break;
}
for(int j = 0;j<lt.size();j++){
System.out.println(lt.get(j));
}
}
} /**
*
* @param dStart 起始日期
* @param dEnd 结束日期
* @return 整年、整月、整日的数组
*/
public static List[] getDateFigure(Date dStart, Date dEnd) {
//@SuppressWarnings("unchecked")
List[] rtnLists = new List[3]; List ltYear = new ArrayList();
List ltMonths = new ArrayList();
List ltDays = new ArrayList();
rtnLists[0] = ltYear;
rtnLists[1] = ltMonths;
rtnLists[2] = ltDays;
//如果起始日期大于结束日期,返回空数组
if (dStart.after(dEnd)) {
return rtnLists;
} SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyyMM");
SimpleDateFormat sdfDay = new SimpleDateFormat("yyyyMMdd");
Calendar start = Calendar.getInstance();
start.setTime(dStart);
Calendar end = Calendar.getInstance(); //Calendar.DAY_OF_YEAR 返回指定年的天数
//Calendar.DAY_OF_MONTH 返回指定月的天数
// 非1月1号
if (start.get(Calendar.DAY_OF_YEAR) != 1) {
// 非每月1号
if (start.get(Calendar.DAY_OF_MONTH) != 1) {
// 设置到当年月末
end.set(start.get(Calendar.YEAR),
start.get(Calendar.MONTH) + 1, 1);
end.add(Calendar.DAY_OF_MONTH, -1);
if (end.getTime().after(dEnd)) {
end.setTime(dEnd);
}
add(sdfDay,Calendar.DAY_OF_MONTH,ltDays, start, end);
} end.setTime(dEnd);
// 设置结束日期到年末
if (start.get(Calendar.MONTH) != 0 && start.get(Calendar.YEAR) < end.get(Calendar.YEAR) ) {
end.set(start.get(Calendar.YEAR), 11, 31);
if (end.getTime().after(dEnd)) {
end.setTime(dEnd);
end.set(Calendar.DAY_OF_MONTH, 1);
}
add(sdfMonth,Calendar.MONTH,ltMonths, start, end);
}
} // 设置结束日期,计算整年
end.setTime(dEnd);
if (start.get(Calendar.YEAR) < end.get(Calendar.YEAR)) {
end.set(Calendar.DAY_OF_YEAR, 1);
end.add(Calendar.DAY_OF_YEAR, -1);
add(sdfYear,Calendar.YEAR,ltYear,start,end);
}
// 设置结束日期
end.setTime(dEnd);
Calendar comp = Calendar.getInstance();
comp.setTime(dEnd);
comp.add(Calendar.DAY_OF_YEAR, 1);
if (comp.get(Calendar.MONTH) == end.get(Calendar.MONTH)) {
end.set(Calendar.DAY_OF_MONTH, 1);
end.add(Calendar.DAY_OF_YEAR, -1);
}
add(sdfMonth,Calendar.MONTH,ltMonths, start, end); // 设置结束日期
end.setTime(dEnd);
add(sdfDay,Calendar.DAY_OF_MONTH,ltDays, start, end);
return rtnLists;
}
/**
*
* @param sdf 日期格式
* @param step 字段类型
* @param lts 存放位置
* @param start 起始日期
* @param end 结束日期
*/
private static void add(SimpleDateFormat sdf,int step,List lts, Calendar start,
Calendar end) {
while (end.after(start) || end.equals(start)) {
lts.add(sdf.format(start.getTime()));
start.add(step, 1);
}
}}
改得匆忙了,这个大致都测试了下,再试下。有问题留言给我吧。先去睡了
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;public class DateBetween { public static void main(String[] args) {
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
start.set(2010,4,1);// 2008年5月1日
end.set(2010,4,27);// 2010年5月27日
List[] rtnLists = getDateFigure(start.getTime(), end.getTime()); for (int i = 0; i < rtnLists.length; i++) {
List lt = rtnLists[i];
switch (i) {
case 0:
System.out.println("整年");
break;
case 1:
System.out.println("整月");
break;
default:
System.out.println("整日");
break;
}
for(int j = 0;j<lt.size();j++){
System.out.println(lt.get(j));
}
}
} /**
*
* @param dStart 起始日期
* @param dEnd 结束日期
* @return 整年、整月、整日的数组
*/
public static List[] getDateFigure(Date dStart, Date dEnd) { List[] rtnLists = new List[3]; List ltYear = new ArrayList();
List ltMonths = new ArrayList();
List ltDays = new ArrayList();
rtnLists[0] = ltYear;
rtnLists[1] = ltMonths;
rtnLists[2] = ltDays;
//如果起始日期大于结束日期,返回空数组
if (dStart.after(dEnd)) {
return rtnLists;
} SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyyMM");
SimpleDateFormat sdfDay = new SimpleDateFormat("yyyyMMdd");
Calendar start = Calendar.getInstance();
start.setTime(dStart);
Calendar end = Calendar.getInstance();
Calendar comp = Calendar.getInstance();
comp.setTime(dEnd);
comp.add(Calendar.DAY_OF_YEAR, 1); // 非1月1号
if (start.get(Calendar.DAY_OF_YEAR) != 1) {
// 非每月1号
if (start.get(Calendar.DAY_OF_MONTH) != 1) {
// 设置到当年月末
end.set(start.get(Calendar.YEAR),
start.get(Calendar.MONTH) + 1, 1);
end.add(Calendar.DAY_OF_MONTH, -1);
if (end.getTime().after(dEnd)) {
end.setTime(dEnd);
}
add(sdfDay,Calendar.DAY_OF_MONTH,ltDays, start, end);
} end.setTime(dEnd);
// 设置结束日期到年末
if (start.get(Calendar.MONTH) != 0 && start.get(Calendar.YEAR) < end.get(Calendar.YEAR) ) {
end.set(start.get(Calendar.YEAR), 11, 31);
if (end.getTime().after(dEnd)) {
end.setTime(dEnd);
end.set(Calendar.DAY_OF_MONTH, 1);
}
add(sdfMonth,Calendar.MONTH,ltMonths, start, end);
}
} // 设置结束日期,计算整年
end.setTime(dEnd);
// 结束日期为年末
if(comp.get(Calendar.DAY_OF_YEAR) == 1){
add(sdfYear,Calendar.YEAR,ltYear,start,end);
}
// 结束日期非年末
if (start.get(Calendar.YEAR) < end.get(Calendar.YEAR)) {
//设置到前一年年末
end.set(Calendar.DAY_OF_YEAR, 1);
end.add(Calendar.DAY_OF_YEAR, -1);
add(sdfYear,Calendar.YEAR,ltYear,start,end);
}
// 设置结束日期
end.setTime(dEnd);
// 计算整月
if (comp.get(Calendar.MONTH) == end.get(Calendar.MONTH)) {
end.set(Calendar.DAY_OF_MONTH, 1);
end.add(Calendar.DAY_OF_YEAR, -1);
}
add(sdfMonth,Calendar.MONTH,ltMonths, start, end); // 设置结束日期
end.setTime(dEnd);
add(sdfDay,Calendar.DAY_OF_MONTH,ltDays, start, end);
return rtnLists;
}
/**
*
* @param sdf 日期格式
* @param step 字段类型
* @param lts 存放位置
* @param start 起始日期
* @param end 结束日期
*/
private static void add(SimpleDateFormat sdf,int step,List lts, Calendar start,
Calendar end) {
while (end.after(start) || end.equals(start)) {
lts.add(sdf.format(start.getTime()));
start.add(step, 1);
}
}}