如何将特定月数添加到存储在数据库中的日期。
private Date getStartDate(){
return new Date(Calendar.getInstance().getTimeInMillis());
}
private Date getEndDate(){
startDate = userSubscription.getSubscriptionStartDate();
Date endDate;
Calendar calendar = Calendar.getInstance();
//Now I am having trouble cause in add() method of calendar there is no long type parameter
return endDate;
}
答案 0 :(得分:1)
例如,您可以按以下方式添加1个月:
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH)+1);
简单地将您的变量(我假设的月数)转换为int。
我建议使用不同的时间库,例如joda。您可以在joda库中执行类似的操作:
Date date = new Date();
DateTime dateTime = new DateTime(date);
dateTime.plusMonths(1);
return dateTime.toDate();
答案 1 :(得分:0)
首先是旁注 - 此代码也可用于在" getStartDate"中返回新日期。方法:
return new Date();
回答你的问题:
calendar.add(Calendar.MONTH, x);
endDate = calendar.getTime();
在哪里' x'表示要添加的月数。
答案 2 :(得分:0)
为了避免一年中的最后一天或一年中的最后一个月,您可以使用GregorianCalendar#roll(..)。一种重写代码的可能方法:
private Date getEndDate(){
//...
Calendar calendar = GregorianCalendar.getInstance();
//Now I am having trouble cause in add() method of calendar there is no long type parameter
c.setTime(userSubscription.getSubscriptionStartDate());
c.roll(Calendar.MONTH, 1);
return c.getTime();
}