class WeeklyTimeWindow {

   public Date nextOrCurrentStartDate(Date asOf,TimeZone tz){
      Date thisWeekStart = thisWeekStartDate(asOf, tz);
      Date nextWeekStart = nextWeekStartDate(asOf, tz);
      if(isDateInTimeWindow(asOf, tz)){
         return thisWeekStart; 
      }
      return nextWeekStart;
   }

   public  WeeklyTimeWindow(DayOfWeek startDay,String startTime, int duration, TimeUnit timeUnit);
   public  WeeklyTimeWindow(DayOfWeek startDay,TimeOfDay startTime, int duration, TimeUnit timeUnit);
   public  WeeklyTimeWindow(TimeWindow timeWindow);

}