in reply to choosing closest date to a given date
For each date in your array calculate the delta between it and the target date, select the one with the lowest delta? Date::Calc/Date::Manip.