As long as you are working with DataTime you should be OK - so I guess your DTimeBeginWork contains only the time in some format and not the date?
That being the case, you either need to specify the date or assume the date is the next day if the endwork time value is less than the Beginwork time value...
e.g.
if (DTimeBeginWork.Value > DTimeEndWork.Value)
{
date2.AddDays(1);
}