3

我需要根据以下条件获取日期,

从当前日期开始,如果用户仅选择日期(1-31),则必须从当前日期中减去它并获得新日期。

如果用户选择周数(1-53),那么我们必须从当前日期数周数中删除选定的周数数并获得一个新日期。

如果用户只选择月份(1-12),那么我们必须从当前日期月份中删除选定的月份数并获取新日期。
日期检查示例代码..

Calendar today=Calendar.getInstance();  
int month=today.MONTH;  

int year=today.YEAR;  
today.clear();  
today.set(year, month,dateOfMonth);
date=today.getTime();

任何逻辑都受到高度赞赏。
提前致谢。

4

3 回答 3

3
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.setTime(currentDate);
if (inDays) {
  cal.add(Calendar.DATE, -n);
} else if (inWeeks) {
  cal.add(Calendar.WEEK_OF_YEAR, -n);
} else if (inMonths) {
  cal.add(Calendar.MONTH, -n);
}
于 2012-09-21T07:00:18.723 回答
1

您可以使用以下方法实现所有这些:

java.util.Calendar.add(int, int)

例如:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -10); // substracts 10 days from 'now'
于 2012-09-21T06:55:38.637 回答
0

使用乔达时间

在日期中添加天数:http: //joda-time.sourceforge.net/apidocs/org/joda/time/Days.html#plus (int )

于 2012-09-21T06:59:55.180 回答