Date day = new Date(); Calendar Day = Calendar.getInstance(); Day.setTime(day); Day.add(Day.DATE, 7); day = Day.getTime();
以前写的,可以参考一下,Date的某些方法过时了,可以自己将它改用Calendar实现/*得到任意一天的后n天的日期值,暂时只考虑到下个月的情况*/ public Date getDateAfterN(int n,String dateStr) { SimpleDateFormat ft=new SimpleDateFormat("yyyy-M-d",Locale.getDefault()); ParsePosition pos = new ParsePosition(0); Date currentTime = ft.parse(dateStr,pos); int year = currentTime.getYear()+1900; int month = currentTime.getMonth()+1; int date = currentTime.getDate(); //是否在本月内 if((date+n)<=getNumbers(year,month)) date = date+n; else //在下月,暂不考虑后多个月的情况 { //本月是否是十二月 if(month!=12) { date = date + n -getNumbers(year,month); month = month + 1; } else { month = 1; date = date + n -getNumbers(year,month); year = year + 1; } } //根据最后的year,month,date返回日期 String newString = String.valueOf(year) + "-" + String.valueOf(month)+ "-" + String.valueOf(date); ParsePosition pos2 = new ParsePosition(0); return (ft.parse(newString, pos2)); }
java.util.Date d = new java.util.Date(); d.setDate(d.getDate()+7); 然后再用java.sql.Date 转换一下好了!! ……
Djava的方法非常的完善,强烈建议采用那种方法。
public static java.sql.Date addOneDay(java.sql.Date d) { d = new java.sql.Date(d.getYear(), d.getMonth(), d.getDate()); java.sql.Date nextD = new java.sql.Date(d.getTime() + 24 * 3600 * 1000 * 7); return nextD; }
import java.util.Calendar;
import java.util.Date;public class DateTest{
public static void main (String[] args){
Calendar c=Calendar.getInstance();
c.setTime(new Date());
//c.set(1998,2,3);//1998-3-3
System.out.println(format(c));
c.add(Calendar.DATE,7);
System.out.println(format(c));
}
private static String format(Calendar c){
return Integer.toString(c.get(Calendar.YEAR))
+"-"
+Integer.toString(c.get(Calendar.MONTH)+1)
+"-"
+Integer.toString(c.get(Calendar.DATE));
}
}
Calendar Day = Calendar.getInstance();
Day.setTime(day);
Day.add(Day.DATE, 7);
day = Day.getTime();
public Date getDateAfterN(int n,String dateStr)
{
SimpleDateFormat ft=new SimpleDateFormat("yyyy-M-d",Locale.getDefault());
ParsePosition pos = new ParsePosition(0); Date currentTime = ft.parse(dateStr,pos);
int year = currentTime.getYear()+1900;
int month = currentTime.getMonth()+1;
int date = currentTime.getDate(); //是否在本月内
if((date+n)<=getNumbers(year,month))
date = date+n;
else //在下月,暂不考虑后多个月的情况
{
//本月是否是十二月
if(month!=12)
{
date = date + n -getNumbers(year,month);
month = month + 1;
}
else
{
month = 1;
date = date + n -getNumbers(year,month);
year = year + 1;
}
} //根据最后的year,month,date返回日期
String newString = String.valueOf(year) + "-" + String.valueOf(month)+ "-" + String.valueOf(date);
ParsePosition pos2 = new ParsePosition(0);
return (ft.parse(newString, pos2));
}
d.setDate(d.getDate()+7);
然后再用java.sql.Date 转换一下好了!!
……
d = new java.sql.Date(d.getYear(), d.getMonth(), d.getDate());
java.sql.Date nextD = new java.sql.Date(d.getTime() + 24 * 3600 * 1000 * 7);
return nextD;
}