最近发现一种更简单的日期加减运算方法:
先用int 直接运算,例如:20120728 要加5天 20120728+5=20120733;
把20120733 转换成字符串 "2012/07/33" 然后付给
java.util.Date adate=new Date("2012/07/33" );
adate就会变为20120802
date转换时会自动调整格式如果超过31天则会自动在月上进位
同样超过12月年也会进位。大小月以及闰月都会自动调节
大家可以试试。
下面是我用于安卓开发的代码。
Date date_add(int time, int k){//time: 日期8位int ,k :要增加的天数。
String s = String.valueOf(time);//转成字符串
StringBuffer str = new StringBuffer(s);//转换成字符串变量
String strInsert = " ";
str.insert(4, strInsert);//在年月之间加入空格“ ”
str.insert(7, strInsert);//在月日之间加入空格“ ”
s = str.toString();
String arry[] = s.split(" ");
int nian = Integer.parseInt(arry[0]);//取出年
int yue = Integer.parseInt(arry[1]);//取出月
int ri = Integer.parseInt(arry[2]);//取出年
int ri2=ri+k;//直接在日上做加法
//最关键是下面这步。date转换时会自动调整格式如果超过31天则会自动在月上进位
//同样超过12月年也会进位。大小月以及闰月都会自动调节
java.util.Date adate=new Date( ""+nian+"/"+yue+"/"+ri2 );
//
return adate;
}
另外有其它的方法共大家参考,下面的方法可能比较正中: