About this tool
The working days counter takes a start date, an end date and, if you want it, a monthly salary, and returns four numbers: how many calendar days the range covers, how many of them are weekend days, how many are public holidays, and how many are left as net working days. It also lists the holidays it found inside the range, can show a day-by-day breakdown, and converts the net figure into a pro-rata salary estimate. It is for the people who have to defend a number: an HR officer pro-rating a salary for someone who joined on the 12th, a factory supervisor checking the denominator behind a daily overtime rate, an NGO finance officer closing a grant period that straddles Pchum Ben, or a school administrator counting teaching days in a term. It applies the inkhmer.com holiday list for 2025, 2026 and 2027, which is not the official sub-decree list, and it knows nothing about annual leave, sick leave, shift rotas, half-days, overtime rules or the rate a public holiday should be paid at. It counts days; it does not interpret a labour contract.
How it works
`computeWorkingDays` in `cambodia-working-days-core.ts` walks every day from the start to the end of the range and classifies it three ways. A day is a weekend when its weekday is in the weekend list, which is Saturday and Sunday by default and Sunday only when you turn on the option to count Saturday as a working day. A day is a public holiday when its ISO date appears in the map built by `getHolidayDateEntriesForYear` for each year the range touches — that function expands a multi-day festival such as Pchum Ben into its individual days. Net working days are the days that are neither. A holiday that falls on a Saturday or Sunday is counted in the holiday total but is not deducted a second time, which is why the holiday count can exceed the number of days actually removed from the working total. The range is inclusive at both ends. `computeProRataPay` divides the monthly salary by the net working days of the whole calendar month containing the end date, not of the range, and multiplies that daily rate by the net working days in the range. Years outside 2025 to 2027 are reported as unsupported: weekends are still counted, holidays are not.
Use cases
- Pro-rating the first month of salary for an employee who started on the 12th rather than on the 1st
- Checking the working-day denominator behind a daily overtime rate before payroll is signed off
- Closing a donor-funded project period that runs across Pchum Ben and the Water Festival
- Counting teaching days in a school term that includes two public holidays
- Estimating the labour cost of a short contract that starts and ends mid-month
- Auditing an attendance sheet against the public holidays that actually fell inside the pay period
- Explaining to a new manager why a month with 31 days has only 19 working days
Frequently asked questions
Which public holiday list does this calculator apply?
The inkhmer.com holiday dataset for 2025, 2026 and 2027, the same list the Cambodia Holidays tool displays. It is not the official calendar: it carries Chinese New Year, Meak Bochea, International Children's Day and International Human Rights Day, which the current sub-decrees do not list, and it omits Visak Bochea, the Royal Ploughing Ceremony and Peace Day. For a payroll decision, check the sub-decree for the year and adjust the result by hand.
Why is the public holiday count higher than the days removed from the total?
Because a holiday that falls on a Saturday or Sunday is still counted as a public holiday, but it was already a weekend day and is not subtracted twice. In October 2026 the tool counts five public holiday days — 10, 11 and 12 October for Pchum Ben, then 15 and 29 October — but 10 and 11 October are the weekend, so only three weekdays come off the working total.
How is the pro-rata salary calculated?
Daily rate equals the monthly salary divided by the net working days of the whole calendar month that contains the end date, and period pay equals that daily rate times the net working days in your range. The denominator is deliberately the full month rather than the range, so a part-month payment is consistent with a full-month one. If the range ends in a different month from where it starts, the end month sets the denominator.
Does the calculator count Saturday as a working day?
By default no: Saturday and Sunday are both weekend days. The option above the results switches the weekend list to Sunday only, which suits offices and factories that run a six-day week. Nothing else changes, so turning it on adds every Saturday in the range to the net working days and leaves the holiday count untouched.
What happens if the range includes 2028 or an earlier year?
The holiday dataset stops at 2027 and starts at 2025. A range that reaches outside those years still counts calendar and weekend days correctly, but no holidays are applied for the unsupported year, and the result names the year so you can see why the number looks high. The pro-rata denominator for a month in an unsupported year is a plain weekday count.
Can I use this for overtime, leave or a shift rota?
No. It counts calendar days by weekday and holiday only. It does not read a rota, does not know who worked, does not handle half-days, annual leave, sick leave, maternity leave or a rotating rest day, and takes no position on the premium a public holiday or a Sunday should attract. Those come from the Labour Law and from your own agreement, not from a day counter.
Is the salary figure in riel or dollars?
Either, but the arithmetic is currency-agnostic and the result is printed with a riel symbol whatever you typed. Enter 500,000 for a riel salary or 1,200 for a dollar salary and read the answer in the same unit you entered. The calculator does not convert, does not round to a payable amount and does not apply tax, NSSF or any other deduction.
Why does the daily rate look rounded?
The money fields are formatted for display with no decimal places, so a daily rate of 63.16 appears as 63. The period pay is computed from the unrounded rate and then rounded for display, which means a full month normally reproduces the salary exactly while a part month can differ by a riel or a dollar from a hand calculation that rounds at each step.
Data and accuracy
The holiday input is `getHolidayDateEntriesForYear` in `cambodia-holidays-data.ts`, the same dataset the Cambodia Holidays tool renders, limited to 2025, 2026 and 2027 and not yet reconciled with the annual sub-decrees. The day classification and the pro-rata arithmetic are `computeWorkingDays` and `computeProRataPay` in `cambodia-working-days-core.ts`. The official authority for the dates is the sub-decree for the year — No. 204/24 OrNKr/BK of 29 August 2024 for 2025, No. 167 OrNKr/BK of 5 September 2025 for 2026 and No. 198 ANKr.BK of 16 September 2026 for 2027. Content reviewed on 21 October 2026.
Sources
- Sub-Decree No. 167 OrNKr/BK of 5 September 2025 — the 2026 holiday calendar this tool is checked against — Agence Kampuchea Presse
- Sub-Decree No. 198 ANKr.BK of 16 September 2026 — the 2027 holiday calendar, month by month — Cambodianess
- Sub-Decree No. 204/24 OrNKr/BK of 29 August 2024 — the 2025 holiday calendar — Royal Government of Cambodia, reproduced by Commerce Cambodia
Content last reviewed 21 October 2026