public TimeWindows advanceBy(final Duration advance) {
        final String msgPrefix = prepareMillisCheckFailMsgPrefix(advance, "advance");
        final long advanceMs = validateMillisecondDuration(advance, msgPrefix);
        return new TimeWindows(sizeMs, advanceMs, graceMs, false);
    }
Return a window definition with the original size, but advance ("hop") the window by the given interval, which
specifies by how much a window moves forward relative to the previous one.
The time interval represented by the N-th window is: {@code [N * advance, N * advance + size)}.
<p>
This provides the semantics of hopping windows, which are fixed-sized, overlapping windows.

@param advance The advance interval ("hop") of the window, with the requirement that {@code 0 < advance.toMillis() <= sizeMs}.
@return a new window definition with default maintain duration of 1 day
@throws IllegalArgumentException if the advance interval is negative, zero, or larger than the window size
streams/src/main/java/org/apache/kafka/streams/kstream/TimeWindows.java