直接 set 不太好 d1.roll(Calendar.DAY,5);就可以了 如果是向前调整5天,就是-5
直接 set 不太好 d1.roll(Calendar.DAY,5);就可以了 如果是向前调整5天,就是-5 这个根本就不行,编译都通过不了,Calendar.DAY根本就没有这个常量。换成Calendar.DATE也不行。跨年的时候有问题
应该是 add(Calendar.DATE, 5);
public static Date dateAdd(Date mydate,String interval,int number) { Date datReturn=null; int intInterval=GregorianCalendar.DAY_OF_YEAR; if (interval.equals("Y")) intInterval=GregorianCalendar.YEAR; else if (interval.equals("M")) intInterval=GregorianCalendar.MONTH; else if (interval.equals("D")) intInterval=GregorianCalendar.DAY_OF_YEAR; else if (interval.equals("H")) intInterval=GregorianCalendar.HOUR_OF_DAY; else if (interval.equals("m")) intInterval=GregorianCalendar.MINUTE; else if (interval.equals("S")) intInterval=GregorianCalendar.SECOND;
System.out.println(d1.getTime());
d1.set(Calendar.DAY_OF_MONTH, (d1.get(Calendar.DAY_OF_MONTH))+5);
d1.roll(Calendar.DAY,5);就可以了
如果是向前调整5天,就是-5
d1.roll(Calendar.DAY,5);就可以了
如果是向前调整5天,就是-5
这个根本就不行,编译都通过不了,Calendar.DAY根本就没有这个常量。换成Calendar.DATE也不行。跨年的时候有问题
add(Calendar.DATE, 5);
{
Date datReturn=null;
int intInterval=GregorianCalendar.DAY_OF_YEAR;
if (interval.equals("Y"))
intInterval=GregorianCalendar.YEAR;
else if (interval.equals("M"))
intInterval=GregorianCalendar.MONTH;
else if (interval.equals("D"))
intInterval=GregorianCalendar.DAY_OF_YEAR;
else if (interval.equals("H"))
intInterval=GregorianCalendar.HOUR_OF_DAY;
else if (interval.equals("m"))
intInterval=GregorianCalendar.MINUTE;
else if (interval.equals("S"))
intInterval=GregorianCalendar.SECOND;
GregorianCalendar cal=new GregorianCalendar(y,m-1,d);
//将构造的y,m,d传给cal对象
try{
cal.add(intInterval,number);
datReturn=cal.getTime();
}
catch (Exception ex) {
}
return datReturn;
}
/**
* 给定两个日期值,计算它们相距的天数
*/
public DateTest(int y,int m,int d){
this.y=y;
this.m=m;
this.d=d;
}
public static void main(String[] args){
DateTest dt = new DateTest(2005,1,1);
System.out.println(dt.IsLegal());
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(format.format(dt.dateAdd(new Date(),"D",5)));
}
private static int y;
private static int m;
private static int d;
}