java计算2008年1月1日到2008年9月1日 相距多少天.

2024-12-23 10:33:06
推荐回答(4个)
回答1:

这么写就行了

import java.util.Date;
import java.text.SimpleDateFormat;

public class DateTest {
public static void main(String[] args) throws Exception {
Date date1 = new SimpleDateFormat("yyyy-mm-dd").parse("2008-01-01");
Date date2 = new SimpleDateFormat("yyyy-mm-dd").parse("2009-09-01");
// 日期相减得到相差的日期
long day = (date1.getTime() - date2.getTime()) / (24 * 60 * 60 * 1000) > 0 ? (date1
.getTime() - date2.getTime())
/ (24 * 60 * 60 * 1000)
: (date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000);

long day1 = date1.getTime();
Date sb = new Date();
sb.setTime(day1);
System.out.println("相差的日期: " + day);
}
}

回答2:

楼上的代码有点小问题,修改了一下
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class DateTest {
    public static void main(String[] args) throws Exception {
        Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-01-01");
        Date date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-09-01");
        // 日期相减得到相差的日期
        long day = (date1.getTime() - date2.getTime()) / (24 * 60 * 60 * 1000) ;
        System.out.println("相差的日期: " + Math.abs(day));
    }
}

回答3:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Days
{

public static void main(String[] args)
{
String d1 = "2008年1月1日";
String d2 = "2008年9月1日";

int sub = new Days().subDays(d1,d2);
System.out.println(sub);
}

public int subDays(String d1,String d2)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
int subDay = 0;
try
{

//求出过去的日期
Date date1 = (Date) sdf.parse(d1);

//现在日期
Date date2 = (Date) sdf.parse(d2);

//两个日期毫秒数相减,然后除以一天的毫秒数
subDay = (int)( ((date2.getTime()-date1.getTime())/(1000*24*60*60)));
} catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

return subDay;
}

}

回答4:

不会,估计,哥们我坦诚吧