Java Data Type How to - Get starting LocalDate and ending LocalDate for previous week








Question

We would like to know how to get starting LocalDate and ending LocalDate for previous week.

Answer

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.util.Arrays;
/*from  w  w  w .  j  a  v a  2 s. c o  m*/
public class Main {

  public static void main(String[] args) {
    LocalDate[] a = previousWeekDay(LocalDate.now());

    System.out.println(Arrays.toString(a));
  }

  public static LocalDate[] previousWeekDay(LocalDate date) {
    if (date == null) {
      date = LocalDate.now();
    }
    return getWeekday(date.minusWeeks(1));
  }

  public static LocalDate[] getWeekday(LocalDate date) {
    int DAYS_OF_WEEK = 7;

    if (date == null) {
      date = LocalDate.now();
    }

    LocalDate begin = null;
    if (date.getDayOfWeek().equals(DayOfWeek.SUNDAY)) {
      begin = date;
    } else {
      begin = date.minusDays(date.getDayOfWeek().getValue());
    }
    LocalDate end = begin.plusDays(DAYS_OF_WEEK - 1);

    LocalDate localDate[] = { begin, end };

    return localDate;

  }
}

The code above generates the following result.