We have checked and found that when a night employee is applying for a holiday on 14 April and which start at 19:30 and end on 15 April at 2:50, where 15 April fall under a public holiday, and the system not calculating public holiday that's why it is showing 4.17 hours instead of 7 hours. But if we will select any date where the next day is not a public holiday then the system will calculate the complete 7 hours.
Worked on the below execution plan:
1. Creating 2 different Calendar Event Category - Public Holiday Night, and Public Holiday Day
2. Copy and Create all the Public Holidays from Public Holiday Day to Public Holiday Night Category with different timings
Night Employees have Holiday Start from 12:00:00 to Next day 12:00:00 example (2-Jun 12:00:00 - 3 Jun 12:00:00) and Day Employees have Holiday Start from 00:00:00 to Next Day 00:00:00 example (2-Jun 00:00:00 - 3 Jun 00:00:00)
This would cover the Overnight shift timings for Night employees.
3. Attach the Event Category Accordingly to the work schedule of the employees based on the Night or Day Employees.
I hope this blog post was helpful for you. If you have any questions or feedback, please leave a comment below.