Helst behöver du två fält i alla fall:
- Lagra två datum/tid separat --ELLER--
- Lagra ett datum/tid och spara den förflutna tiden
När jag granskar dina krav, skulle jag välja två separata datum/tid-fält; och beräkna heldagar/halvdagar inklusive (lägga till/subtrahera) helgdagar.
Behåll en separat konfigurationstabell för att definiera/konfigurera max/minsta varaktighet på dagen.
Utför alla beräkningar på dagen/tiden, inom frågan, eller alternativt på användargränssnittet, vid användaråtgärder - om du så önskar.