Como fazer um loop no thymeleaf percorrendo um intervalo de datas?
Algo como
for (LocalDate date = dataDe; date.isBefore(dataAte); date = date.plusDays(1))
{
}
?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Como fazer um loop no thymeleaf percorrendo um intervalo de datas?
Algo como
for (LocalDate date = dataDe; date.isBefore(dataAte); date = date.plusDays(1))
{
}
?
Olá Dov, tudo bem?
Para percorrer um intervalo de datas no Thymeleaf, você pode utilizar a biblioteca Java 8 Time, que permite trabalhar com datas e horários de forma mais eficiente.
Para isso, você pode criar uma variável no seu controller que armazena uma lista de datas entre as duas datas desejadas, e então utilizar um loop no Thymeleaf para exibir cada uma dessas datas.
Segue um exemplo de como fazer isso:
No seu controller:
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
// ...
LocalDate dataDe = LocalDate.of(2021, 10, 1);
LocalDate dataAte = LocalDate.of(2021, 10, 10);
List<LocalDate> datas = new ArrayList<>();
for (LocalDate date = dataDe; date.isBefore(dataAte); date = date.plusDays(1)) {
datas.add(date);
}
model.addAttribute("datas", datas);
No seu template Thymeleaf:
<ul>
<li th:each="data : ${datas}" th:text="${data}"></li>
</ul>
Esse código irá criar uma lista com as datas entre 01/10/2021 e 10/10/2021 e exibi-las em uma lista não ordenada no seu template.
Espero ter ajudado e bons estudos!