fork download
  1. import java.time.*;
  2. import java.time.format.*;
  3. import java.time.temporal.*;
  4.  
  5. class Example
  6. {
  7. private static void showDateInfo(LocalDate ld) {
  8. int weekOfYear = ld.get(ChronoField.ALIGNED_WEEK_OF_YEAR);
  9. int dayOfWeek = ld.getDayOfWeek().getValue();
  10. System.out.println(ld.format(DateTimeFormatter.ISO_LOCAL_DATE) + " is week " + weekOfYear + ", day " + dayOfWeek);
  11. }
  12. public static void main (String[] args) throws java.lang.Exception
  13. {
  14. LocalDate currentLocalDate = LocalDate.of(2019, 6, 30);
  15. showDateInfo(currentLocalDate);
  16. int dayOfWeek = currentLocalDate.getDayOfWeek().getValue();
  17. int weekOfYear = currentLocalDate.get(ChronoField.ALIGNED_WEEK_OF_YEAR);
  18. LocalDate resultLocalDate = currentLocalDate
  19. .minusYears(1)
  20. .with(ChronoField.ALIGNED_WEEK_OF_YEAR, weekOfYear)
  21. .with(ChronoField.DAY_OF_WEEK, dayOfWeek);
  22. showDateInfo(resultLocalDate);
  23. }
  24. }
Success #stdin #stdout 0.14s 2184192KB
stdin
Standard input is empty
stdout
2019-06-30 is week 26, day 7
2018-07-01 is week 26, day 7