import java.util.*;
import java.text.SimpleDateFormat;
import javax.swing.*;
public class DateTest{
public int getDate(String beginDate,String endDate) throws Exception{
SimpleDateFormat sim=new SimpleDateFormat("yyyy-mm-dd");
Date d1=sim.parse(beginDate);
Date d2=sim.parse(endDate);
return (int)((d2.getTime()-d1.getTime())/(3600L*1000*24));
}
public static void main (String[] args) throws Exception{
String day1=JOptionPane.showInputDialog("请输入日期,例1990-10-10");
String day2=JOptionPane.showInputDialog("请输入第二个日期,例1990-10-10");
DateTest test=new DateTest();
System.out.println (test.getDate(day1,day2));
}
}
可以计算出同一个月内的两个日期之间的天数,但是跨月(像2009-10-1和2009-11-1)就不行了,麻烦各位指出下错误,谢谢了~
import java.text.SimpleDateFormat;
import javax.swing.*;
public class DateTest{
public int getDate(String beginDate,String endDate) throws Exception{
SimpleDateFormat sim=new SimpleDateFormat("yyyy-mm-dd");
Date d1=sim.parse(beginDate);
Date d2=sim.parse(endDate);
return (int)((d2.getTime()-d1.getTime())/(3600L*1000*24));
}
public static void main (String[] args) throws Exception{
String day1=JOptionPane.showInputDialog("请输入日期,例1990-10-10");
String day2=JOptionPane.showInputDialog("请输入第二个日期,例1990-10-10");
DateTest test=new DateTest();
System.out.println (test.getDate(day1,day2));
}
}
可以计算出同一个月内的两个日期之间的天数,但是跨月(像2009-10-1和2009-11-1)就不行了,麻烦各位指出下错误,谢谢了~
--------------------------------------------------------------------------------------------------------------
错在:SimpleDateFormat sim=new SimpleDateFormat("yyyy-mm-dd");
m:表示的是小时,
M:表示的才是月份。
另外。getTime()好像返回的是Long型,你弄个int,数据容易丢失。
修改后如下:
import java.util.*;
import java.text.SimpleDateFormat;
import javax.swing.*;
public class DateTest{
public long getDate(String beginDate,String endDate) throws Exception{
SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd");
Date d1=sim.parse(beginDate);
Date d2=sim.parse(endDate);
return (long)((d2.getTime()-d1.getTime())/(3600L*1000*24));
}
public static void main (String[] args) throws Exception{
String day1=JOptionPane.showInputDialog("请输入日期,例1990-10-10");
String day2=JOptionPane.showInputDialog("请输入第二个日期,例1990-10-10");
DateTest test=new DateTest();
System.out.println (test.getDate(day1,day2));
}
}
m:表示的是小时,
M:表示的才是月份。
另外。getTime()好像返回的是Long型,你弄个int,数据容易丢失。
修改后如下:
import java.util.*;
import java.text.SimpleDateFormat;
import javax.swing.*;
public class DateTest{
public long getDate(String beginDate,String endDate) throws Exception{
SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd");
Date d1=sim.parse(beginDate);
Date d2=sim.parse(endDate);
return (long)((d2.getTime()-d1.getTime())/(3600L*1000*24));
}
public static void main (String[] args) throws Exception{
String day1=JOptionPane.showInputDialog("请输入日期,例1990-10-10");
String day2=JOptionPane.showInputDialog("请输入第二个日期,例1990-10-10");
DateTest test=new DateTest();
System.out.println (test.getDate(day1,day2));
}
}