Hola,
puedes usar la función Date() para olvidarte de la hora del MonthCalendar:
En la ayuda de Delphi:
Código:
function Date: TDateTime;
Description
Use Date to obtain the current local date as a TDateTime value. The time portion of the value is 0
Ejemplo:
Código Delphi
[-]DataSet.Locate('FECHA', Date(MonthCalendar.Date), []);