Nguyên tắc cơ bản:
1. Qui tất cả về ngày 00/01/1900 để tính theo giờ - phút -> Mốc 20h, 22h sẽ là 00/01/1900 20:00 và 00/01/1900 22:00. Đến mốc 5h, 6h, 9h sẽ là ngày 01/01/1900 6:00 .....
2. Bắt đầu so giờ bắt đầu và giờ kết thúc với các mốc: Giờ bắt đầu phải nhỏ hơn chặn trên của mốc và Giờ kết thúc phải lớn hơn chặn dưới của mốc. Nếu không thỏa thì kết quả = 0. Ví dụ mốc 5h - 6h thì thời gian bắt đầu phải nhỏ hơn 6h, kết thúc phải lớn hơn 5h nó mới tính. Nếu không thỏa thì thời gian làm việc của mốc 5-6h sẽ = 0
3. Nếu thỏa thì tính tiếp, lúc này là bài toán cơ bản thôi: giờ làm cuối trong khung - giờ làm đầu trong khung.
Giờ làm cuối = min của chặn trên mốc với thời gian ra. Ví dụ xét mốc 5h-6h, Nếu làm đến 6h30 thì giờ làm cuối trong khung là 6h, nếu làm đến 5h30 thì giờ làm cuối là 5h30 -> cái này xử lý bằng hàm min.
Giờ làm đầu = máx của chặn dưới mới với thời gian vào. Ví dụ vẫn với mốc 5h-6h. Nếu vào lúc 20h ngày hôm trước thì giờ làm đầu trong khung là 5h, nếu vào làm lúc 5h15 thì giờ làm đầu trong khung là 5h15 -> cái này xử lý bằng hàm max.
Sau khi có giờ làm đầu và giờ làm cuối trong khung thì trừ nhau để ra thời gian làm trong khung.
HẾT