'Based on the precision, convert the period to a precise
`datetime` for use as a right endpoint in a right-open interval.'

def open_right_endpoint(self):

    precision = self.precision
    date = self.date
    if ('year' == self.precision):
        return date.replace(year=(date.year + 1), month=1)
    elif ('month' == precision):
        if (date.month < 12):
            return date.replace(month=(date.month + 1))
        else:
            return date.replace(year=(date.year + 1), month=1)
    elif ('day' == precision):
        return (date + timedelta(days=1))
    else:
        raise ValueError(u'unhandled    precision    {0}'.format(precision))
