java如何输出指定两个日期之间的所有日期

如题所述

假定两个日期用相同的时间格式
import java.text.*;
import java.util.Date;

public class DateTest {
String dateFormat = "yyyy-MM-dd";
SimpleDateFormat format = new SimpleDateFormat(dateFormat);

public static void main(String[] args) {
DateTest t = new DateTest();

String date1 = "2012-02-26";
String date2 = "2012-03-04";

t.process(date1, date2);
}

private void process(String date1, String date2){
if(date1.equals(date2)){
    System.out.println("两个日期相等!");
    return;
}

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){                 
         System.out.println(tmp);    
         num++;
         tmp = format.format(str2Date(tmp).getTime() + 3600*24*1000);
        }

        if(num == 0)
         System.out.println("两个日期相邻!");
}

private Date str2Date(String str) {
if (str == null) return null;

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-10
//如何得到一年的所有星期二的日期?
GregorianCalendar h=new GregorianCalendar();
h.set(Calendar.DAY_OF_YEAR, 1); //今年的第一天

GregorianCalendar v=new GregorianCalendar();
v.set(Calendar.DAY_OF_YEAR, 1);
v.add(Calendar.YEAR, 1); //明年的第一天
v.add(Calendar.DATE, -1); //今年的最后一天

while (!v.equals(h))
{
if( h.get(Calendar.DAY_OF_WEEK)==3)
{
System.out.println(h.getTime());
}
h.add(Calendar.DATE, 1);
}

上面一个是得到一年中所有星期2,new了2个 日历类,你把那2个换成你要的间隔日期,还有判断星期2你去掉,就可以了,我也懒得改,这个很容易看懂的 ,
注意:日历 你把那些set()里面的东西改下就OK了,具体参数你自己改,
第2个回答  2012-05-10
敲了一段代码,假定两个日期用相同的时间格式。测试通过。满意请采纳!
import java.text.*;
import java.util.Date;

public class DateTest {
String dateFormat = "yyyy-MM-dd";
SimpleDateFormat format = new SimpleDateFormat(dateFormat);

public static void main(String[] args) {
DateTest t = new DateTest();

String date1 = "2012-02-26";
String date2 = "2012-03-04";

t.process(date1, date2);
}

private void process(String date1, String date2){
if(date1.equals(date2)){
System.out.println("两个日期相等!");
return;
}

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){
System.out.println(tmp);
num++;
tmp = format.format(str2Date(tmp).getTime() + 3600*24*1000);
}

if(num == 0)
System.out.println("两个日期相邻!");
}

private Date str2Date(String str) {
if (str == null) return null;

try {
return format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}本回答被提问者采纳
相似回答