Set up a calculation that adds 12 hours to the Shift End time when it is less than the Shift Start time that then uses Get ( CurrentDate ) to compute a timestamp.
TimeStamp ( Get ( CurrentDate ) ; Shift_Start )
TimeStamp ( Get ( CurrentDate ) ; Shift_End ) + If ( Shift_end < Shift_start ; 3600 * 12 )
You can then use get ( CurrentTimeStamp ) to compare to these two values to see if the person is "on shift" or not.
"however I want to keep it open ended so it will calculate on any day at any time"
Could you please elaborate on that ?
Why a time field is better than a timestamp field?
Thanks Phil... that works perfectly.
Raybaudi: The idea is that this is a running document that one can open at any time and see what crews are on duty. It's not calendar or date specific, just time specific. For example if crew 1 works 09:00-21:00; crew 2 works 11:00-19:00 and crew 3 works 20:00-08:00 I would like to open the solution at say, 3pm and have it show me that crew 1 and 2 are on duty, while crew 3 is off duty for another 5hrs. To use specific timestamps would involve plugging in a schedule for each day, whereas this just works any time you pop it open. Hope that makes sense... but I agree that usually I would go with timestamps.
Phil's solution is simple and elegant... as always. Thanks again.....
But I forgot to mention that these calculations, if defined in fields, need to be unstored calculations in order for them to update as the value returned by Get ( currentDate ) changes.