有两个 String 类型的变量 都是日期 。然后需要调用getDaysBetween函数取得这两个日期间的间隔天数,我要怎么把那两个String 类型的变量 转换成函数可以接受的参数类型呢?对了,我GOOGLE了一下 说 java.util.Calendar 是抽象类,抽象类在JAVA里面能实例化对象吗?
static int getDaysBetween (java.util.Calendar d1, java.util.Calendar d2)
{
if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(java.util.Calendar.DAY_OF_YEAR) -d1.get(java.util.Calendar.DAY_OF_YEAR);
int y2 = d2.get(java.util.Calendar.YEAR);
if (d1.get(java.util.Calendar.YEAR) != y2) {
d1 = (java.util.Calendar) d1.clone();
do {
days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);
d1.add(java.util.Calendar.YEAR, 1);
} while (d1.get(java.util.Calendar.YEAR) != y2);
}
return days;
}
static int getDaysBetween (java.util.Calendar d1, java.util.Calendar d2)
{
if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(java.util.Calendar.DAY_OF_YEAR) -d1.get(java.util.Calendar.DAY_OF_YEAR);
int y2 = d2.get(java.util.Calendar.YEAR);
if (d1.get(java.util.Calendar.YEAR) != y2) {
d1 = (java.util.Calendar) d1.clone();
do {
days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);
d1.add(java.util.Calendar.YEAR, 1);
} while (d1.get(java.util.Calendar.YEAR) != y2);
}
return days;
}
String Now_date=sdf.format(now); 两个日期都用使用SimpleDateFormat规定好格式了public void Format()
{
sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
d = sdf.parse(dStr);
} catch (ParseException pe) {
System.out.println(pe.getMessage());
}
}
String Ex_date=sdf.format(d);
String Now_date=sdf.format(now);
Date d1 = sdf.parse(Ex_date);
Date d2 = sdf.parse(Now_date);
GregorianCalendar d11 = new GregorianCalendar();
GregorianCalendar d22 = new GregorianCalendar();
d11.setTime(d1);
d22.setTime(d2);
int day=getDaysBetween(d11,d22);先把String 转成Date Date再转成GregorianCalendar 类型,才能调用那个 别人写好的函数!