我有字符串日期&我想通过1&它应该循环到月底。 作为考试,如果我采取2010年11月它应该循环30天。 如果我采取2010年12月它应该循环31天。 下面显示了我的代码......
String date="12/01/2010";
String incDate;
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(date));
for(int co=0; co<30; co++){
c.add(Calendar.DATE, 1);
incDate = sdf.format(c.getTime());
}
答案 0 :(得分:7)
String date="12/01/2010";
String incDate;
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(date));
int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
for(int co=0; co<maxDay; co++){
c.add(Calendar.DATE, 1);
incDate = sdf.format(c.getTime());
}
c.getActualMaximum(Calendar.DAY_OF_MONTH)
结果将是该月的最后一天。
答案 1 :(得分:0)
另一种解决方案可能是:
String date = "01/11/2010";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
try {
c.setTime(sdf.parse(date));
} catch (ParseException ex) {
Logger.getLogger(DateIterator.class.getName()).log(Level.SEVERE, null, ex);
}
int maxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int co = 0; co < maxDay; co++) {
System.out.println(sdf.format(c.getTime()));
c.add(Calendar.DATE, 1);
}