fork(1) download
  1. import java.time.DayOfWeek;
  2. import java.time.LocalDate;
  3. import java.time.format.DateTimeFormatter;
  4. import java.time.format.ResolverStyle;
  5. import java.time.temporal.ChronoUnit;
  6.  
  7. class TesteData {
  8. public static boolean fimDeSemana(LocalDate ld) {
  9. DayOfWeek d = ld.getDayOfWeek();
  10. return d == DayOfWeek.SATURDAY || d == DayOfWeek.SUNDAY;
  11. }
  12.  
  13. public static LocalDate mais2DiasUteis(LocalDate ld) {
  14. LocalDate novaData = ld.plus(2, ChronoUnit.DAYS);
  15. while (fimDeSemana(novaData)) {
  16. novaData = novaData.plus(1, ChronoUnit.DAYS);
  17. }
  18. return novaData;
  19. }
  20.  
  21. public static void main(String[] args) {
  22. DateTimeFormatter fmt = DateTimeFormatter
  23. .ofPattern("dd/MM/uuuu")
  24. .withResolverStyle(ResolverStyle.STRICT);
  25.  
  26. LocalDate algumaData1 = mais2DiasUteis(LocalDate.parse("04/09/2018", fmt));
  27. LocalDate hoje1 = LocalDate.parse("05/09/2018", fmt); //LocalDate.now();
  28. boolean antes1 = algumaData1.isBefore(hoje1);
  29. System.out.println(antes1 + " - " + fmt.format(algumaData1) + " - " + fmt.format(hoje1));
  30.  
  31. LocalDate algumaData2 = mais2DiasUteis(LocalDate.parse("06/09/2018", fmt));
  32. LocalDate hoje2 = LocalDate.parse("10/09/2018", fmt); //LocalDate.now();
  33. boolean antes2 = algumaData2.isBefore(hoje2);
  34. System.out.println(antes2 + " - " + fmt.format(algumaData2) + " - " + fmt.format(hoje2));
  35.  
  36. LocalDate algumaData3 = mais2DiasUteis(LocalDate.parse("06/09/2018", fmt));
  37. LocalDate hoje3 = LocalDate.parse("11/09/2018", fmt); //LocalDate.now();
  38. boolean antes3 = algumaData3.isBefore(hoje3);
  39. System.out.println(antes3 + " - " + fmt.format(algumaData3) + " - " + fmt.format(hoje3));
  40. }
  41. }
Success #stdin #stdout 0.21s 2184192KB
stdin
Standard input is empty
stdout
false - 06/09/2018 - 05/09/2018
false - 10/09/2018 - 10/09/2018
true - 10/09/2018 - 11/09/2018