📅 Week Number Explorer

Discover the mysteries of ISO week numbering. Why does December 30th sometimes belong to next year's week 1? Explore the edge cases that break business logic and confuse developers worldwide.

Edge case examples:
2025

📊 Date Analysis

Selected Date
October 27, 2025
ISO Week
2025-W44
2025-W44
Calendar Week
Week 44
Week 44 of 2025
Day of Week
1
Monday

📅 Calendar View

October 2025

Week
Mon
Tue
Wed
Thu
Fri
Sat
Sun
40
29
W40
30
W40
1
W40
2
W40
3
W40
4
W40
5
W40
41
6
W41
7
W41
8
W41
9
W41
10
W41
11
W41
12
W41
42
13
W42
14
W42
15
W42
16
W42
17
W42
18
W42
19
W42
43
20
W43
21
W43
22
W43
23
W43
24
W43
25
W43
26
W43
44
27
W44
28
W44
29
W44
30
W44
31
W44
1
W44
2
W44
Selected Date
Edge Case
Other Month
Today

Safe Week Calculation Examples

// ❌ Avoid: Native Date methods for week calculations
const badWeek = new Date("2025-10-27").getWeek(); // Doesn't exist!

// ✅ Better: Use Day.js with ISO week plugin
import dayjs from 'dayjs';
import isoWeek from 'dayjs/plugin/isoWeek';
dayjs.extend(isoWeek);

const date = dayjs("2025-10-27");
console.log('ISO Week:', date.isoWeek());
console.log('ISO Week Year:', date.isoWeekYear());
console.log('ISO Week String:', `${date.isoWeekYear()}-W${String(date.isoWeek()).padStart(2, '0')}`);

// Check for edge cases
if (date.isoWeekYear() !== date.year()) {
  console.log('⚠️ Edge case: ISO week year differs from calendar year');
}

// ✅ Alternative: Luxon
import { DateTime } from 'luxon';
const dt = DateTime.fromISO("2025-10-27");
console.log('Week Number:', dt.weekNumber);
console.log('Week Year:', dt.weekYear);