2015-04-09 48 views
0

Я проектирую систему бронирования в java, которая должна обрабатывать только даты на 2015 год и использовать класс LocalDate, бронирование состоит из даты начала и продолжительности, например. 2015, 5, 26: 7 будет бронирование начиная с 26 мая 2015 года в течение 7 дней, {26,27,28,29,30,31} май и {1} июля. Если я скажу, что генерирую мои даты с петлей есть в любом случае, чтобы получить правильный пролонгировать месяца ?, так что дата не будет говорить, будет тридцать второго мая, но вместо 1 июняПрокрутка месяца с использованием LocalDate в Java?

 int initialDate=26; 
     int initialMonth=5; 
     int duration= 7; 
     int endDate= initialDate+duration; 
     LocalDate date; 

     while(initialDate<=endDate){ 
      date=LocalDate.of(2015, initialMonth, initialDate); 
      System.out.println(date.getDayOfMonth()); 
      initialDate++; 
     } 
+4

Почему бы не использовать [ 'LocalDate # plusDays'] (https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html) ? – MadProgrammer

ответ

3

Предполагая, что вы используете Java 8, почему бы не использовать LocalDate#plusDays?

LocalDate startDate = LocalDate.of(2015, 5, 26); 
LocalDate endDate = startDate.plusDays(7); 

System.out.println(endDate); 

Какие выходы 2015-06-02

+0

Уверен, вы можете упомянуть ** с JDK 8 **? –

+1

@KickButtowski Nah, я просто делаю OP догадываться;) - Кроме того, даже если OP использует JodaTime, функциональность почти такая же (но у JodaTime нет 'LocalDate.of';)) – MadProgrammer

+0

FYI, [Joda -Time] (http://www.joda.org/joda-time/) 2.7 код был бы очень похож: 'LocalDate ld = new LocalDate (2015, 5, 26) .plusDays (7);' или ... 'plusWeeks (1) '. –

Смежные вопросы