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

发布网友 发布时间:2022-04-24 11:33

我来回答

3个回答

热心网友 时间:2022-06-14 09:39

假定两个日期用相同的时间格式
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;
}
}

热心网友 时间:2022-06-14 09:39

//如何得到一年的所有星期二的日期?
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了,具体参数你自己改,

热心网友 时间:2022-06-14 09:40

敲了一段代码,假定两个日期用相同的时间格式。测试通过。满意请采纳!
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;
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com