その月の日を取得して、そのフィールドから実際に日を減算したいと考えています。
注: 日は 2012-09-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
が、sysout すると正しい値が出力されます
calendar.DAY_OF_MONTH
d2 にある正しい日を出力しません。何か間違ったことをしている場合、またはこれが正しいアプローチではない場合、私は混乱していますか?
アップデート
これが私のコードに正確に含まれているものです。日付範囲の配列が必要です。ユーザーが にある終了日を設定し"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;
}