fix: monthly schedule label shows 21th/22th/31th (ordinal suffix for days >20) (#1577)

This commit is contained in:
Afonso Coutinho
2026-06-03 00:57:47 +01:00
committed by GitHub
parent df3864bd15
commit c3bf32d1b1
3 changed files with 50 additions and 1 deletions
+13
View File
@@ -0,0 +1,13 @@
// Pure (browser-free) English ordinal suffix, e.g. 1 -> "st", 21 -> "st",
// 22 -> "nd", 23 -> "rd", 11/12/13 -> "th". Extracted so it can be unit-tested.
export function ordinalSuffix(n) {
const a = Math.abs(Math.trunc(Number(n) || 0));
const mod100 = a % 100;
if (mod100 >= 11 && mod100 <= 13) return 'th';
switch (a % 10) {
case 1: return 'st';
case 2: return 'nd';
case 3: return 'rd';
default: return 'th';
}
}