I want to get all the weeks in a year with the start and end working day date for each week in java starting at current date?

Seeker :

Example

As per today's date 24 june 2019 (which is week 24 in a year) then it should show the below details.

data:[
 week:24
 {
 startDate:24-06-2019,
 endDate: 28-06-2019
},
week: 25 
{
  startDate: 01-07-2019,
  endDate: 05-07-2019
}

Similar data for one year. How can I achieve this data in java. As I am new to java I am struggling to solve this issue. Please help with your explanation or code if possible.

PS: There are 53 weeks in a year.

Vincent Passau :

I would perform this with a good old loop :

public void workingDayOfYear() {
    LocalDate date = LocalDate.of(2019, 6, 24); // Java 8 date
    int initialWeekOfyear = date.get(WeekFields.of(Locale.UK).weekOfWeekBasedYear());
    int weekOfYear = initialWeekOfyear;
    do {
        LocalDate firstDayOfWeek = date.with(WeekFields.of(Locale.UK).dayOfWeek(), 1L);
        LocalDate lastWorkingDayOfWeek = date.with(WeekFields.of(Locale.UK).dayOfWeek(), 5L);

        StringBuilder result = new StringBuilder("Week : ");
        result.append(weekOfYear);
        result.append(", start=");
        result.append(firstDayOfWeek);
        result.append(", end=");
        result.append(lastWorkingDayOfWeek);

        System.out.println(result.toString());
        date = date.plusWeeks(1);
    } while ((weekOfYear = date.get(WeekFields.of(Locale.UK).weekOfWeekBasedYear())) != initialWeekOfyear);
}

Output:

Week : 26, start=2019-06-24, end=2019-06-28

Week : 27, start=2019-07-01, end=2019-07-05

...

Week : 24, start=2020-06-08, end=2020-06-12

Week : 25, start=2020-06-15, end=2020-06-19

Notice that the 53rd week you need is in fact the first week of 2020.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=146907&siteId=1