src/main/java/com/conveyal/gtfs/stats/PatternStats.java
public LocalTime getStartTimeForTrips (Collection<Trip> trips) {
        int earliestDeparture = Integer.MAX_VALUE;

        for (Trip trip : trips) {
            StopTime st = feed.getOrderedStopTimesForTrip(trip.trip_id).iterator().next();
            int dep = st.departure_time;

            // these trips begin on the next day, so we need to cast them to 0 - 86399
            if (dep > 86399) {
                dep = dep % 86399;
            }

            if (dep <= earliestDeparture) {
                earliestDeparture = dep;
            }
        }
        return LocalTime.ofSecondOfDay(earliestDeparture);
    }
public LocalTime getStartTimeForTrips (Collection<Trip> trips) {
        int earliestDeparture = Integer.MAX_VALUE;

        for (Trip trip : trips) {
            StopTime st = feed.getOrderedStopTimesForTrip(trip.trip_id).iterator().next();
            int dep = st.departure_time;

            // these trips begin on the next day, so we need to cast them to 0 - 86399
            if (dep > 86399) {
                dep = dep % 86399;
            }

            if (dep <= earliestDeparture) {
                earliestDeparture = dep;
            }
        }
        return LocalTime.ofSecondOfDay(earliestDeparture);
    }
Get earliest departure time for a set of trips.
@param trips
@return earliest departure time