From 6531fe2274f3541c03dca37b7e11a0fbfe3f7421 Mon Sep 17 00:00:00 2001 From: TrojanerHD Date: Mon, 10 Nov 2025 17:38:53 +0100 Subject: [PATCH] Set number of days in 2025 to 12 --- src/Leaderboard.ts | 4 ++-- src/common.ts | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Leaderboard.ts b/src/Leaderboard.ts index 5ef8ce8..1b4e847 100644 --- a/src/Leaderboard.ts +++ b/src/Leaderboard.ts @@ -9,7 +9,7 @@ import { } from 'discord.js'; import DiscordBot from './DiscordBot'; import { request } from 'https'; -import { aocTime, parseDay, send } from './common'; +import { aocTime, numberOfDays, parseDay, send } from './common'; import * as fs from 'fs'; import { IncomingMessage } from 'http'; @@ -243,7 +243,7 @@ export default class Leaderboard { if (member.stars === 0) continue; let stars: string = ''; - for (let i = 1; i < 26; i++) { + for (let i = 1; i <= numberOfDays(now.getFullYear()); i++) { if (i in member.completion_day_level) { if (member.completion_day_level[i as AdventDay]![2]) { // part 1 and 2 are complete diff --git a/src/common.ts b/src/common.ts index abeeedc..083bd23 100644 --- a/src/common.ts +++ b/src/common.ts @@ -26,14 +26,24 @@ export function send( } /** - * Checks if given date is in the Advent of Code time (between Dec 1 and Dec 25) + * Checks if given date is in the Advent of Code time + * (between Dec 1 and Dec 25 for 2024 or earlier and between Dec 1 and Dec 12 for 2025 or later) * @param date The date to check * @returns Whether the date is in the Advent of Code time */ export function aocTime(date: Date): boolean { return ( date.getMonth() === 11 && - date.getDate() <= 25 && + date.getDate() <= numberOfDays(date.getFullYear())&& (date.getDate() !== 1 || date.getUTCHours() >= 5) ); } + +/** + * Returns the number of days of challenges for the current year + * @param year The year to check + * @returns The amount of days for the specified year + */ +export function numberOfDays(year: number): number { + return year <= 2024 ? 25 : 12; +}