Hi @Diane18 ,
I see what you're doing and I actually agree with it, because it is the most accurate. Especially if you have an employee who starts or leaves at any point during a calendar year.
However, most payroll services consider each semi-monthly pay period (paid on the 15th and the end of the month) to be 86.67 hours (2080 hrs divided by 24 pay periods), which is an average (and usually only used for salaried employees who have little to no fluctuations in their pay).
But that only works out truly accurately when, as I said above, someone is employed for a full calendar year. If they start at any point during the year, or leave at any point during the year, no it doesn't work out with their 'actual' hours because as you've said, some months have 20 working days, some have 21, some have 22 and February often only has 19, creating many different number of days for each semi-monthly period, depending on how they fall in the months of the year.
Personally, I would rather pro-rate it to actual days myself, as then I know it is completely accurate. But it does make it more difficult for employees to understand their pay stub. For this, and probably other reasons that I don't know about, the 86.67 hours for semi-monthly payroll for salaried workers has become the normal practice.