def _get_possible_day_starts(self, start_ut, end_ut, max_time_overnight=None):
if max_time_overnight is None:<EOL><INDENT>max_time_overnight = <NUM_LIT:7> * <NUM_LIT> * <NUM_LIT><EOL><DEDENT>assert start_ut < end_ut<EOL>start_day_ut = self.day_start_ut(start_ut)<EOL>start_day_ds = start_ut - start_day_ut<EOL>end_day_ut = self.day_start_ut(end_ut)<EOL>if start_day_ds < max_time_overnight:<EOL><INDENT>start_day_ut = self.increment_day_start_ut(start_day_ut, n_days=-<NUM_LIT:1>)<EOL><DEDENT>day_start_times_ut = [start_day_ut]<EOL>while day_start_times_ut[-<NUM_LIT:1>] < end_day_ut:<EOL><INDENT>day_start_times_ut.append(self.increment_day_start_ut(day_start_times_ut[-<NUM_LIT:1>]))<EOL><DEDENT>start_times_ds = []<EOL>end_times_ds = []<EOL>for dsut in day_start_times_ut:<EOL><INDENT>day_start_ut = max(<NUM_LIT:0>, start_ut - dsut)<EOL>start_times_ds.append(day_start_ut)<EOL>day_end_ut = end_ut - dsut<EOL>end_times_ds.append(day_end_ut)<EOL><DEDENT>return day_start_times_ut, start_times_ds, end_times_ds<EOL>
Get all possible day start times between start_ut and end_ut
Currently this function is used only by get_tripIs_within_range_by_dsut

Parameters
----------
start_ut : list<int>
    start time in unix time
end_ut : list<int>
    end time in unix time
max_time_overnight : list<int>
    the maximum length of time that a trip can take place on
    during the next day (i.e. after midnight run times like 25:35)

Returns
-------
day_start_times_ut : list
    list of ints (unix times in seconds) for returning all possible day
    start times
start_times_ds : list
    list of ints (unix times in seconds) stating the valid start time in
    day seconds
end_times_ds : list
    list of ints (unix times in seconds) stating the valid end times in
    day_seconds