From 1d2d71414324b394b71f3d11200f799f18a8e931 Mon Sep 17 00:00:00 2001 From: Chesterkxng Date: Thu, 10 Jul 2025 15:51:58 +0200 Subject: [PATCH] feat: check leap year (service file) --- .../tools/time/check-leap-years/service.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/pages/tools/time/check-leap-years/service.ts diff --git a/src/pages/tools/time/check-leap-years/service.ts b/src/pages/tools/time/check-leap-years/service.ts new file mode 100644 index 0000000..bb928f7 --- /dev/null +++ b/src/pages/tools/time/check-leap-years/service.ts @@ -0,0 +1,25 @@ +function isLeapYear(year: number): boolean { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; +} + +export function checkLeapYear(input: string): string { + if (!input) return ''; + + const years = input + .split('\n') + .map((year) => year.trim()) + .filter((year) => year !== ''); + + const results = years.map((yearStr) => { + if (!/^\d{1,4}$/.test(yearStr)) { + return `${yearStr}: Invalid year`; + } + + const year = Number(yearStr); + return `${year} ${ + isLeapYear(year) ? 'is a leap year.' : 'is not a leap year.' + }`; + }); + + return results.join('\n'); +}