After this line,
int nHours = dtValue.Hour; should do one determination to see if the hour should be added one if the minute reachs "00":
if ( lstMINUTE.SelectedValue.Equals("00") && nMinutes > 60 - nMinutesIncrement ) { nHours++; }
Can you provide a test case that demonstrates the problem?
with nMinutesIncrement = "15"
When insert any record having DateTimePicker controll, under the condition : at 3:55 O'clock for example, the control will show 3:00 (It should be 4:00).