日期加月数返回一个日期的问题 日期加月数返回一个日期的问题A="20071006";加上一个月数10.返回日期B="XXXXXXXX"怎么做.谢谢大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先分离日期,月份加10,大于12的话年份加1,A="20071006"B=A.subString(0,4);C=A.subString(5,2);C=C+10;if(C>12){ B=B+1; C=C-12;} public static String addMonths(String ymd, int amount) { final Calendar calendar = new GregorianCalendar(); calendar.setLenient(false); calendar.set(Integer.parseInt(ymd.substring(0, 4)), Integer.parseInt(ymd.substring(4, 6)), Integer.parseInt(ymd.substring(6))); calendar.add(Calendar.MONTH, amount); final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); sdf.setLenient(false); return sdf.format(calendar.getTime()); } 最好先转换为日期类型,加上月后再转回字符串一些代码:public static final String DATE_FORMAT_YYYYMMDD = "yyyyMMdd";String dateStr = "20071006";int addMonths = 10;SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_YYYYMMDD);Date date = null;try { date = dateFormat.parse(dateStr);} catch(ParseException e) { e.printStackTrace();}Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MONTH, addMonths);Date nowDate = calendar.getTime();System.out.println(dateFormat.format(nowDate));结果:20080806 这样如果String dateStr = "20070430";则得到20080229 请教一个JAVA问题 如何循环ABC? 下面语句中的abstract,是谁的抽象方法_路过进来看一下好吗. 一小问题,,,,,,,急! 谢谢! 检测本机网络端口能不能用以下程序? applet停止问题! 大家帮我看看这个用堆栈实现对中序表达式计算的程序为什么会出现这样的错误计算结果的原因吧! 俺是java新手,以前用别的工具的,不知道这里有没有热心人帮俺啊? 请问在java中怎么画直线? 请教一个文件压缩的问题?如何解决子目录?? JTextPane 中带有格式的文字如何保存? 大家好,请问如何设置JLabel水平居中,但垂直不居中。
A="20071006"
B=A.subString(0,4);
C=A.subString(5,2);
C=C+10;
if(C>12){
B=B+1;
C=C-12;
}
final Calendar calendar = new GregorianCalendar();
calendar.setLenient(false);
calendar.set(Integer.parseInt(ymd.substring(0, 4)),
Integer.parseInt(ymd.substring(4, 6)),
Integer.parseInt(ymd.substring(6)));
calendar.add(Calendar.MONTH, amount); final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
sdf.setLenient(false);
return sdf.format(calendar.getTime());
}
一些代码:
public static final String DATE_FORMAT_YYYYMMDD = "yyyyMMdd";
String dateStr = "20071006";
int addMonths = 10;
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_YYYYMMDD);
Date date = null;
try {
date = dateFormat.parse(dateStr);
} catch(ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, addMonths);
Date nowDate = calendar.getTime();
System.out.println(dateFormat.format(nowDate));结果:20080806
则得到20080229