从今天起删除日期或周或月的代码

时间:2012-09-21 06:51:30

标签: java date calendar

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

从当前日期开始,如果用户仅选择日期(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();

任何逻辑都受到高度赞赏 在此先感谢。

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:1)

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

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

例如:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -10); // substracts 10 days from 'now'

答案 2 :(得分:0)