Isbooktoday < UPDATED – 2027 >
// Extend this list as needed const BOOK_DAYS: BookDayRule[] = [ month: 4, day: 23, name: "World Book Day" , // UNESCO month: 4, day: 2, name: "International Children's Book Day" , month: 3, day: 3, name: "World Book Day (UK/Ireland)" , // first Thursday in March often, but simplified month: 9, day: 8, name: "International Literacy Day" , month: 10, day: 16, name: "Dictionary Day" , month: 11, day: 1, name: "National Author's Day" , // US ];
// Optional: get the name of the book day if true export function getBookDayName(date: Date = new Date()): string | null const month = date.getMonth() + 1; const day = date.getDate(); isbooktoday
// Check a specific date const testDate = new Date(2026, 3, 23); // April 23, 2026 console.log(isBookToday(testDate)); // true console.log(getBookDayName(testDate)); // "World Book Day" If you need to handle dynamic book days (e.g., first Thursday of March), modify the rule structure: // Extend this list as needed const BOOK_DAYS:
const found = BOOK_DAYS.find(bookDay => bookDay.month === month && bookDay.day === day); return found ? found.name : null; Today is $getBookDayName()
Then implement a helper to compute the actual date. test("isBookToday returns true on April 23", () => const april23 = new Date(2026, 3, 23); expect(isBookToday(april23)).toBe(true); );
import isBookToday, getBookDayName from './book-days'; // Check today if (isBookToday()) console.log( Yes! Today is $getBookDayName(). ); else console.log("Not a recognized book day.");