fix streak counting
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user