我想让月中的某一天实际上从该字段中减去天数。从日历中获取自定义的月份日期
注:这一天是定制选择,比如2012年9月10日
Date d2 = new SimpleDateFormat("yyyy-M-dd").parse("2012-10-24);
Calendar calendar= Calendar.getInstance();
Calendar csd= Calendar.getInstance();
calendar.setTime(d2);
csd.add(calendar.DAY_OF_MONTH, -5);
csd.add(calendar.get(Calendar.DAY_OF_MONTH),-5)
的上面实际上会出错说出IllegalArgumentException
,但是当我将其系统打印出来时打印出正确的值
calendar.DAY_OF_MONTH
不会打印出在d2中的正确日期。如果我做错了什么,或者这不是正确的方法,我很困惑?
UPDATE
这是我在我的代码有什么。我想要任何日期范围的数组。假设用户已将结束日期设置为"2012-8-20"
,这在d2
中。我想在一个数组中使用30天的日期值,该代码不起作用。
for(int count = 30; count >=1; count--) {
Calendar csd = Calendar.getInstance();
csd.add(calendar.DAY_OF_MONTH, -count);
String dt = (csd.get(Calendar.YEAR)) + "-" + (csd.get(Calendar.MONTH)+1) + "-" + (csd.get(Calendar.DATE));
aDays[30 - count] = dt;
}
你可以编辑提供一个可运行的例子,说明问题,样本输入和预期的输出?在哪里/如何定义“calendarEndDate”?你为什么创建两个不同的日历?为什么“d1”相关? – DNA
@DNA。我刚刚复制了代码。在这种情况下,我不使用d1,但是为了其他目的,我在代码中使用了它。 – user525146
csd.add(calendar.get(Calendar.DAY_OF_MONTH),-5); Calendar.DAY_OF_MONTH不是有效的参数。 – PbxMan