John,
I'm not at home so I can't exactly test, but ...
You should be able to put the in/out times into two fields as the full h:m:s and use the difference for the calculation of that part. The frames would probably be best left seperately and then you could have a field for the format.
Then, to calculate the difference, you subtract the frame values using the correct value based on the format and, if the difference is < 0, you would borrow 1 second (or x frames) from the time.
The calc may look pretty busy in the calculation field with different if clauses and such, but it should be very easy to do.