请问高手们一个相对简单问题,我想用JAVA代码,取出两个日期之间所有的日期,怎样写代码
例如 日期的最小值是 2008-12-01
日期值最大值是 2008-12-05
我要取2008-12-01 到2008-12-05 之间的日期,即2008-12-01、2008-12-02、2008-12-03、2008-12-04、2008-12-05
请问用java要怎么写
例如 日期的最小值是 2008-12-01
日期值最大值是 2008-12-05
我要取2008-12-01 到2008-12-05 之间的日期,即2008-12-01、2008-12-02、2008-12-03、2008-12-04、2008-12-05
请问用java要怎么写
public static List twoDays(String str1,String str2){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
List list = new ArrayList();
try {
Date b=df.parse(str1);
Date e=df.parse(str2);
Calendar c=Calendar.getInstance();
c.setTime(b);
while (e.compareTo(c.getTime())>=0){
String tempDateStr = "";
tempDateStr = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()).toString() + "," +new SimpleDateFormat("E").format(c.getTime());
System.out.println(tempDateStr);
list.add(tempDateStr);
c.add(c.DATE, 1);
}
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return list;
}
这是你要的代码:
import java.util.Calendar;
import java.util.GregorianCalendar; public class CalendarTest {
public static void main(String[] args)
{
GregorianCalendar day1 = new GregorianCalendar(2008, Calendar.DECEMBER, 01);
GregorianCalendar day2 = new GregorianCalendar(2008, Calendar.DECEMBER, 05); while(day2.after(day1)){
day1.add(Calendar.DATE,1);
System.out.println(String.valueOf(day1.get(Calendar.YEAR)) + "-" + String.valueOf(day1.get(Calendar.MONTH)+1) + "-" + String.valueOf(day1.get(Calendar.DAY_OF_MONTH)));
}
}
}
import java.text.*;
public class TestDate { //取2008-12-01 到2008-12-05 之间的日期
//,即2008-12-01、2008-12-02、2008-12-03、2008-12-04、2008-12-05
public static GregorianCalendar[] getDate(String d1,String d2) throws ParseException
{
Vector<GregorianCalendar> v=new Vector<GregorianCalendar>();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
GregorianCalendar gc1=new GregorianCalendar(),gc2=new GregorianCalendar();
gc1.setTime(sdf.parse(d1));
gc2.setTime(sdf.parse(d2));
do{
GregorianCalendar gc3=(GregorianCalendar)gc1.clone();
v.add(gc3);
gc1.add(Calendar.DAY_OF_MONTH, 1);
}while(!gc1.after(gc2));
return v.toArray(new GregorianCalendar[v.size()]);
}
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
GregorianCalendar[] ga=getDate("2008-12-29", "2009-1-5");
for(GregorianCalendar e:ga)
{
System.out.println(e.get(Calendar.YEAR)+"年 "+
+(e.get(Calendar.MONTH)+1)+"月 "+
e.get(Calendar.DAY_OF_MONTH)+"号");
}
}}
程序运行结果:
2008年 12月 29号
2008年 12月 30号
2008年 12月 31号
2009年 1月 1号
2009年 1月 2号
2009年 1月 3号
2009年 1月 4号
2009年 1月 5号