📅 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:
2026
📊 Date Analysis
Selected Date
April 11, 2026
ISO Week
2026-W15
2026-W15
Calendar Week
Week 15
Week 15 of 2026
Day of Week
6
Saturday
📅 Calendar View
April 2026
Week
Mon
Tue
Wed
Thu
Fri
Sat
Sun
14
30
W14
31
W14
1
W14
2
W14
3
W14
4
W14
5
W14
15
6
W15
7
W15
8
W15
9
W15
10
W15
11
W15
12
W15
16
13
W16
14
W16
15
W16
16
W16
17
W16
18
W16
19
W16
17
20
W17
21
W17
22
W17
23
W17
24
W17
25
W17
26
W17
18
27
W18
28
W18
29
W18
30
W18
1
W18
2
W18
3
W18
Selected Date
Edge Case
Other Month
Today
Safe Week Calculation Examples
// ❌ Avoid: Native Date methods for week calculations
const badWeek = new Date("2026-04-11").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("2026-04-11");
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("2026-04-11");
console.log('Week Number:', dt.weekNumber);
console.log('Week Year:', dt.weekYear);