code: public final WeeklyOpeningHours compress() {
  
          final Map<HourRanges, List<DayOfTheWeek>> map = new HashMap<>();
          for (final DayOpeningHours doh : weeklyOpeningHours) {
              final HourRanges ranges = doh.getHourRanges().compress();
              List<DayOfTheWeek> dayList = map.get(ranges);
              if (dayList == null) {
                  dayList = new ArrayList<>();
                  map.put(ranges, dayList);
              }
              dayList.add(doh.getDayOfTheWeek());
          }
  
          final StringBuilder sb = new StringBuilder();
          final Iterator<HourRanges> it = map.keySet().iterator();
          while (it.hasNext()) {
              final HourRanges ranges = it.next();
              final List<DayOfTheWeek> days = map.get(ranges);
              Collections.sort(days);
              if (sb.length() > 0) {
                  sb.append(",");
              }
              sb.append(new MultiDayOfTheWeek(days.toArray(new DayOfTheWeek[days.size()])).compress().asBaseType() + " " + ranges);
          }
  
          return new WeeklyOpeningHours(sb.toString());
  
      }
docs: Creates a compressed version of this instance. The string representing this instance will be shortened.<br>
  For example 'Mon 09:00-17:00,Tue 09:00-17:00' will become 'Mon/Tue 09:00-17:00'.
  
  @return New shortened instance.