func makeISOTimeArray(startDate time.Time, endDate time.Time) []stock.ISOTime { var timeArray []stock.ISOTime // Make sure startDate and endDate are in 2011/2012, those are the only years // that we have holiday information for. If not, return empy. if !(startDate.Year() == 2011 || startDate.Year() == 2012) && (endDate.Year() == 2011 || endDate.Year() == 2012) { return timeArray } var day stock.ISOTime = stock.ISOTime{startDate.AddDate(0, 0, -1)} for day.Before(endDate) { day = stock.ISOTime{day.AddDate(0, 0, 1)} // market is not open on Saturday or Sunday if day.Weekday() == time.Weekday(0) || day.Weekday() == time.Weekday(6) { continue } // market is not open on certain holidays isHoliday := false for _, holiday := range Holidays20112012 { if day.Year() == holiday.Year() && day.YearDay() == holiday.YearDay() { isHoliday = true break } } if !isHoliday { timeArray = append(timeArray, day) } } return timeArray }