docs(documents): explain monthBoundaryTo day-zero idiom (#385)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,9 @@ export function monthBoundaryFrom(yearMonth: string): string {
|
|||||||
|
|
||||||
export function monthBoundaryTo(yearMonth: string): string {
|
export function monthBoundaryTo(yearMonth: string): string {
|
||||||
const [year, month] = yearMonth.split('-').map(Number);
|
const [year, month] = yearMonth.split('-').map(Number);
|
||||||
|
// Day 0 of `month + 1` rolls back to the last day of `month` — so passing
|
||||||
|
// `month` (1-indexed) into `Date.UTC(year, month, 0)` lands on the last day
|
||||||
|
// of that month. Handles 28/29/30/31 and leap years without a lookup table.
|
||||||
const lastDay = new Date(Date.UTC(year, month, 0)).getUTCDate();
|
const lastDay = new Date(Date.UTC(year, month, 0)).getUTCDate();
|
||||||
return `${yearMonth}-${String(lastDay).padStart(2, '0')}`;
|
return `${yearMonth}-${String(lastDay).padStart(2, '0')}`;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user