Дата увеличения на 1 и цикл до конца месяца - PullRequest
3 голосов
/ 26 декабря 2010

У меня есть дата строки, и я хочу увеличить дату на 1, и она должна быть цикличной до конца месяца. Например, если я возьму ноябрь 2010 года, он должен пройти 30 дней. если я возьму декабрь 2010 года, он должен пройти 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());
}

Ответы [ 2 ]

7 голосов
/ 26 декабря 2010
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) будет последний день месяца.

0 голосов
/ 03 января 2011

Другое решение может быть:

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);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...