我想根据用户选择的内容在特定日期添加一些月份。例如,将2015年5月15日增加3个月。 我尝试了一些东西,但它向我显示了相同的日期。
以下代码:
Calendar aed = Calendar.getInstance();
int monthsToAdd = 0;
if (advertPostedDate.equals(1)) {
monthsToAdd = 1;
}
if (advertPostedDate.equals(2)) {
monthsToAdd = 2;
}
if (advertPostedDate.equals(3)) {
monthsToAdd = 3;
}
aed.add(Calendar.MONTH, monthsToAdd);
Date advertED = aed.getTime();
DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
String advertExpiryDate = df.format(advertED);
答案 0 :(得分:1)
您的代码看起来很好,但我会使用if/else if
结构而不仅仅是if
结构。您确定advertPostedDate的值为1,2或3吗?因为如果没有,那么0会被添加到几个月。
public static void main(String[] args) {
Integer advertPostedDate = 2;
Calendar aed = Calendar.getInstance(); // 15-5-2015
int monthsToAdd = 0;
if (advertPostedDate.equals(1)) {
monthsToAdd = 1;
} else if (advertPostedDate.equals(2)) {
monthsToAdd = 2;
} else if (advertPostedDate.equals(3)) {
monthsToAdd = 3;
}
aed.add(Calendar.MONTH, monthsToAdd);
Date advertED = aed.getTime();
DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
String advertExpiryDate = df.format(advertED);
System.out.println(advertExpiryDate);
}
结果:
15-07-2015
答案 1 :(得分:0)
我建议您使用Joda-Time
DateTime dt = new DateTime(2015, 5, 15, 12, 0, 0, 0);
DateTime plusPeriod = dt.plusMonths(3);