page.go
func indexesOutsideRange(start time.Time, end time.Time, results []time.Time) []int {
	if start.After(end) {
		panic("start date is after end date")
	}
	indexes := make([]int, 0, len(results))
	for i, result := range results {
		if result.Equal(end) || result.After(end) {
			indexes = append(indexes, i)
		}
		if result.Before(start) {
			indexes = append(indexes, i)
		}
	}
	return indexes
}
func indexesOutsideRange(start time.Time, end time.Time, results []time.Time) []int {
	if start.After(end) {
		panic("start date is after end date")
	}
	indexes := make([]int, 0, len(results))
	for i, result := range results {
		if result.Equal(end) || result.After(end) {
			indexes = append(indexes, i)
		}
		if result.Before(start) {
			indexes = append(indexes, i)
		}
	}
	return indexes
}
// indexesOutsideRange returns the indexes of times in results that are outside
// of [start, end). indexesOutsideRange panics if start is later than end.