//下面写的烦琐,而且输入非法日期回抛异常。 import java.util.*; import java.text.*; public class Test { public Test(){
} public static void main(String[] args){
Test t=new Test(); Date date1=Test.fromDateString("2005-12-20","yyyy-MM-dd"); Date date2=Test.fromDateString("2005-12-25","yyyy-MM-dd"); System.out.println(t.getDiffdays(date2,date1));
} public long getDiffdays(Date date1,Date date2){ Calendar cal1=new GregorianCalendar(date1.getYear(),date1.getMonth(),date1.getDate()); Calendar cal2=new GregorianCalendar(date2.getYear(),date2.getMonth(),date2.getDate()); return getDiffdays(cal1,cal2); } public long getDiffdays(Calendar cal1,Calendar cal2){
long diffMills=cal1.getTimeInMillis()-cal2.getTimeInMillis(); long diffDays=diffMills/(24*60*60*1000); return diffDays; } public static Date fromDateString(String dateString, String fromFormat) { GregorianCalendar gc = new GregorianCalendar(); SimpleDateFormat df = new SimpleDateFormat(fromFormat); df.setTimeZone(gc.getTimeZone()); df.setLenient(false); Date date = df.parse(dateString, new ParsePosition(0)); return date; } }
//格式整理一下import java.util.*; import java.text.*; public class Test { public Test(){
} public static void main(String[] args){
Test t=new Test(); Date date1=Test.fromDateString("2005-12-20","yyyy-MM-dd"); Date date2=Test.fromDateString("2005-12-25","yyyy-MM-dd"); System.out.println(t.getDiffdays(date2,date1));
} public long getDiffdays(Date date1,Date date2){ Calendar cal1=new GregorianCalendar(date1.getYear(), date1.getMonth(),date1.getDate());
return getDiffdays(cal1,cal2); } public long getDiffdays(Calendar cal1,Calendar cal2){
long diffMills=cal1.getTimeInMillis()-cal2.getTimeInMillis(); long diffDays=diffMills/(24*60*60*1000); return diffDays; } public static Date fromDateString(String dateString, String fromFormat) { GregorianCalendar gc = new GregorianCalendar(); SimpleDateFormat df = new SimpleDateFormat(fromFormat); df.setTimeZone(gc.getTimeZone()); df.setLenient(false); Date date = df.parse(dateString, new ParsePosition(0)); return date; } }
另外我给出一个:import java.util.GregorianCalendar;public class DayOfNum { public DayOfNum() { GregorianCalendar c1 = new GregorianCalendar(1983,2,18,15,00,00); GregorianCalendar c2 = new GregorianCalendar(2005,11,16,00,00); double timeLong=c2.getTimeInMillis()-c1.getTimeInMillis(); float yearNum=(float)((((timeLong/1000)/3600)/24)/365); int dayNum=(int)(((timeLong/1000)/3600)/24); System.out.println("你指定的两个时间点之间的天数是:"+dayNum); System.out.println("你指定的两个时间点之间的年数是:"+yearNum); } public static void main(String[] args) { new DayOfNum(); } } 关于你自己要计算的两个日期,在代码中些写出来,就可以了j2sdk 1.4编译通过,运行无误嘿嘿,兄弟,给点分吧??
import java.util.*;
import java.text.*;
public class Test {
public Test(){
}
public static void main(String[] args){
Test t=new Test();
Date date1=Test.fromDateString("2005-12-20","yyyy-MM-dd");
Date date2=Test.fromDateString("2005-12-25","yyyy-MM-dd");
System.out.println(t.getDiffdays(date2,date1));
} public long getDiffdays(Date date1,Date date2){
Calendar cal1=new GregorianCalendar(date1.getYear(),date1.getMonth(),date1.getDate());
Calendar cal2=new GregorianCalendar(date2.getYear(),date2.getMonth(),date2.getDate());
return getDiffdays(cal1,cal2);
} public long getDiffdays(Calendar cal1,Calendar cal2){
long diffMills=cal1.getTimeInMillis()-cal2.getTimeInMillis();
long diffDays=diffMills/(24*60*60*1000);
return diffDays;
} public static Date fromDateString(String dateString, String fromFormat)
{
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat df = new SimpleDateFormat(fromFormat);
df.setTimeZone(gc.getTimeZone());
df.setLenient(false);
Date date = df.parse(dateString, new ParsePosition(0));
return date;
}
}
import java.text.*;
public class Test {
public Test(){
}
public static void main(String[] args){
Test t=new Test();
Date date1=Test.fromDateString("2005-12-20","yyyy-MM-dd");
Date date2=Test.fromDateString("2005-12-25","yyyy-MM-dd");
System.out.println(t.getDiffdays(date2,date1));
} public long getDiffdays(Date date1,Date date2){
Calendar cal1=new GregorianCalendar(date1.getYear(),
date1.getMonth(),date1.getDate());
Calendar cal2=new GregorianCalendar(date2.getYear(),
date2.getMonth(),date2.getDate());
return getDiffdays(cal1,cal2);
} public long getDiffdays(Calendar cal1,Calendar cal2){
long diffMills=cal1.getTimeInMillis()-cal2.getTimeInMillis();
long diffDays=diffMills/(24*60*60*1000);
return diffDays;
} public static Date fromDateString(String dateString, String fromFormat)
{
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat df = new SimpleDateFormat(fromFormat);
df.setTimeZone(gc.getTimeZone());
df.setLenient(false);
Date date = df.parse(dateString, new ParsePosition(0));
return date;
}
}
{
public DayOfNum()
{
GregorianCalendar c1 = new GregorianCalendar(1983,2,18,15,00,00);
GregorianCalendar c2 = new GregorianCalendar(2005,11,16,00,00);
double timeLong=c2.getTimeInMillis()-c1.getTimeInMillis();
float yearNum=(float)((((timeLong/1000)/3600)/24)/365);
int dayNum=(int)(((timeLong/1000)/3600)/24);
System.out.println("你指定的两个时间点之间的天数是:"+dayNum);
System.out.println("你指定的两个时间点之间的年数是:"+yearNum);
}
public static void main(String[] args)
{
new DayOfNum();
}
}
关于你自己要计算的两个日期,在代码中些写出来,就可以了j2sdk 1.4编译通过,运行无误嘿嘿,兄弟,给点分吧??
float yearNum=(float)((((timeLong/1000)/3600)/24)/365);
忽略了瑞年哦
就是用JAVA的API 把日期录入,转化成毫秒作差。结果转化成天数。