Overloads the default list.index, because of special behaviour if the
        date is not in the list:
            - If <date> is not in the list, the index of the latest date before
                <date> is returned.
            - If <date> is earlier than the earliest date in the list, the 
                return value is 0
            - If <date> is later than the latest date in self.dates the return
                value is the index of the most recent date.

def index(self, date):
        '''
        Overloads the default list.index, because of special behaviour if the
        date is not in the list:
            - If <date> is not in the list, the index of the latest date before
                <date> is returned.
            - If <date> is earlier than the earliest date in the list, the 
                return value is 0
            - If <date> is later than the latest date in self.dates the return
                value is the index of the most recent date.
        '''
        if date in self:
            index = super(DateList, self).index(date)
        elif date < self[0]:
            index = 0
        elif date > self[-1]:
            index = len(self) - 1
        else:
            while date not in self:
                date -= self.ONE_DAY
            index = super(DateList, self).index(date)
        return index