fix streak counting

This commit is contained in:
HPL-JesusCastro
2026-05-23 02:41:14 +08:00
parent 2ae42aae0e
commit 71d06c12ad

View File

@@ -70,12 +70,20 @@ export async function letterRoutes(app: FastifyInstance) {
let current = 0;
let longest = 0;
let streak = 0;
let inCurrentStreak = true;
let prev: Date | null = null;
for (let i = 0; i < dates.length; i++) {
const d = new Date(dates[i]);
streak = prev === null ? 1 : (prev.getTime() - d.getTime()) / 86400000 === 1 ? streak + 1 : 1;
if (i === 0) current = streak;
for (const dateStr of dates) {
const d = new Date(dateStr);
if (prev === null) {
streak = 1;
} else if ((prev.getTime() - d.getTime()) / 86400000 === 1) {
streak++;
} else {
streak = 1;
inCurrentStreak = false;
}
if (inCurrentStreak) current = streak;
longest = Math.max(longest, streak);
prev = d;
}