Fix edge case in DayColumn getPositionByDate

getPositionByDate() in DayColumn had the implicit assumption that the date argument would be on the same day as the column date.  This is not always the case - if the date argument is on a day that is hidden (like the weekend) then the column is the nearest visible day prior to the date argument.  In this case, the the time of the date argument (which is used by the rest of the method) is not relevant.  Added a check to catch this case and return the position at the far right of the column.