Java: итерация заданных дат - PullRequest
       5

Java: итерация заданных дат

2 голосов
/ 05 января 2011

У меня есть две даты на Java:

Wed Jan 05 00:00:00 CET 2011
Sat Jan 15 23:59:59 CET 2011

Теперь я хочу перебрать их, чтобы каждый день я мог делать System.out.println(), в котором я помещал на консоль дату такого рода:

2011-01-05
2011-01-06
2011-01-07
...
2011-01-13
2011-01-14
2011-01-15

Как я могу это сделать?

С наилучшими пожеланиями, Тим.

Обновление:

Calendar calend = Calendar.getInstance();
calend.setTime(myObject.getBeginDate());
Calendar beginCalendar = new GregorianCalendar(calend.get(Calendar.YEAR), calend.get(Calendar.MONTH), calend.get(Calendar.DATE));
calend.setTime(myObject.getEndDate());
Calendar endCalendar = new GregorianCalendar(calend.get(Calendar.YEAR), calend.get(Calendar.MONTH), calend.get(Calendar.DATE));
while (beginCalendar.compareTo(endCalendar) <= 0) {
     // ... calculations
    beginCalendar.add(Calendar.DATE, 1);
}

Ответы [ 2 ]

3 голосов
/ 05 января 2011

Используйте объект GregorianCalendar для увеличения на один день за раз

Вывод с использованием SimpleDateFormat .

Чтобы получить вашу дату из строки в объект Date, вам нужно сделать следующее

SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date date = format.parse(yourDateString);

Затем вам нужно преобразовать в GregorianCalendar, чтобы вы могли легко увеличивать значения и, наконец, выводить дату, используя другой SimplerDateFormat так, как вы хотите. См. Документацию для различных кодов.

Обновление: Обновление, после обновления вашего кода, вы можете просто сделать следующее

Calendar beginCalendar = Calendar.getInstance();
beginCalendar.setTime(myObject.getBeginDate());
Calendar endCalendar = Calendar.getInstance();
beginCalendar.setTime(myObject.getEndDate());


while (beginCalendar.compareTo(endCalendar) <= 0) {
     // ... calculations
    beginCalendar.add(Calendar.DATE, 1);
}
1 голос
/ 05 января 2011

Создайте объект Calendar и установите его в дату начала. Добавляйте день за днем ​​и печатайте, пока не достигнете конечной даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...