Holidays

Australia Public Holidays Calculator

Australia's nationally-observed public holidays for any year, calculated live from the actual rules.

Why "national" only covers so much

Australia's public holidays are set state by state, not nationally, and only a handful are consistent across every state and territory. The King's Birthday, for instance, is observed on different Mondays in different states (and not at all in Western Australia and Queensland, which pick their own date entirely); Labour Day moves around by months depending on the state. This calculator shows the holidays that are common to essentially all states — for a specific state's exact calendar, check that state government's site directly.

Related

Related tools

function computeEaster(year){ const a = year % 19; const b = Math.floor(year/100); const c = year % 100; const d = Math.floor(b/4); const e = b % 4; const f = Math.floor((b+8)/25); const g = Math.floor((b-f+1)/3); const h = (19*a + b - d - g + 15) % 30; const i = Math.floor(c/4); const k = c % 4; const l = (32 + 2*e + 2*i - h - k) % 7; const m = Math.floor((a + 11*h + 22*l)/451); const month = Math.floor((h + l - 7*m + 114)/31); const day = ((h + l - 7*m + 114) % 31) + 1; return new Date(Date.UTC(year, month-1, day)); } function australiaHolidays(year){ const easter = computeEaster(year); const goodFriday = new Date(easter); goodFriday.setUTCDate(easter.getUTCDate()-2); const easterSaturday = new Date(easter); easterSaturday.setUTCDate(easter.getUTCDate()-1); const easterMonday = new Date(easter); easterMonday.setUTCDate(easter.getUTCDate()+1); const raw = [ ['New Year\'s Day', new Date(Date.UTC(year,0,1))], ['Australia Day', new Date(Date.UTC(year,0,26))], ['Good Friday', goodFriday], ['Easter Saturday', easterSaturday], ['Easter Monday', easterMonday], ['Anzac Day', new Date(Date.UTC(year,3,25))], ['Christmas Day', new Date(Date.UTC(year,11,25))], ['Boxing Day', new Date(Date.UTC(year,11,26))], ]; return raw.map(([name,date]) => ({name, date, observed: date})); } const now = new Date(); for(let y = now.getFullYear()-1; y <= now.getFullYear()+3; y++){ const opt = document.createElement('option'); opt.value = y; opt.textContent = y; if(y === now.getFullYear()) opt.selected = true; document.getElementById('hlYear').appendChild(opt); } const yearSelect = document.getElementById('hlYear'); const table = document.getElementById('hlTable'); function fmt(d){ return d.toLocaleDateString('en-US',{weekday:'short', month:'long', day:'numeric'}); } function render(){ const year = parseInt(yearSelect.value,10); const rows = australiaHolidays(year); table.innerHTML = rows.map(r => { let obsHtml = ''; if(r.observed && r.observed.getTime() !== r.date.getTime()){ obsHtml = ` (observed ${fmt(r.observed)})`; } return `
${r.name}${fmt(r.date)}${obsHtml}
`; }).join(''); } yearSelect.addEventListener('change', render); render();