Skip to content

desktop/src-tauri/crates/core/src/calendar.rs

Comment 1, line 1

desktop/src-tauri/crates/core/src/calendar.rs:1

//! IANA calendars: day/week/month boundaries, DST 23/25-hour days, ISO weeks and retention cutoffs.

Comment 2, line 2

desktop/src-tauri/crates/core/src/calendar.rs:2

//! UTC milliseconds represent half-open time intervals [start, end).

Comment 3, line 9

desktop/src-tauri/crates/core/src/calendar.rs:9

/// Week start defaults to ISO Monday; Sunday-start week labels use the start date.

Comment 4, line 33

desktop/src-tauri/crates/core/src/calendar.rs:33

/// A fixed IANA timezone keeps this Calendar independent of later system timezone changes.

Comment 5, line 61

desktop/src-tauri/crates/core/src/calendar.rs:61

/// UTC milliseconds to local date.

Comment 6, line 68

desktop/src-tauri/crates/core/src/calendar.rs:68

/// UTC milliseconds to local hour 0-23; both occurrences of a repeated DST hour share a label.

Comment 7, line 69

desktop/src-tauri/crates/core/src/calendar.rs:69

/// Use [`Calendar::offset_seconds_at`] to distinguish their offsets.

Comment 8, line 77

desktop/src-tauri/crates/core/src/calendar.rs:77

/// UTC milliseconds to ISO weekday, Monday=1 through Sunday=7.

Comment 9, line 94

desktop/src-tauri/crates/core/src/calendar.rs:94

/// UTC offset seconds at this instant, distinguishing repeated DST hours.

Comment 10, line 101

desktop/src-tauri/crates/core/src/calendar.rs:101

/// Local date as UTC [start_ms, end_ms); DST days may contain 23 or 25 hours.

Comment 11, line 102

desktop/src-tauri/crates/core/src/calendar.rs:102

/// jiff resolves a nonexistent local midnight to the next valid time.

Comment 12, line 114

desktop/src-tauri/crates/core/src/calendar.rs:114

/// Local date containing now_ms.

Comment 13, line 119

desktop/src-tauri/crates/core/src/calendar.rs:119

/// Retain today and the preceding D-1 local dates; cutoff is today minus D-1 days.

Comment 14, line 129

desktop/src-tauri/crates/core/src/calendar.rs:129

/// First date of this local week, using week_start.

Comment 15, line 139

desktop/src-tauri/crates/core/src/calendar.rs:139

/// Monday-start labels use ISO week/year, such as 2026-W01;

Comment 16, line 140

desktop/src-tauri/crates/core/src/calendar.rs:140

/// Sunday-start labels use their start date, such as 2025-12-28.

Comment 17, line 151

desktop/src-tauri/crates/core/src/calendar.rs:151

/// First local date of the calendar month.

Comment 18, line 156

desktop/src-tauri/crates/core/src/calendar.rs:156

/// Month label, such as 2026-09.

Comment 19, line 161

desktop/src-tauri/crates/core/src/calendar.rs:161

/// Calendar month as a half-open UTC interval.

Comment 20, line 177

desktop/src-tauri/crates/core/src/calendar.rs:177

/// ISO 8601 (week-year, week-number): the week's Thursday determines its year.

Comment 21, line 178

desktop/src-tauri/crates/core/src/calendar.rs:178

/// Week number = (Thursday day-of-year - 1) / 7 + 1.

Comment 22, line 189

desktop/src-tauri/crates/core/src/calendar.rs:189

/// Parse YYYY-MM-DD.

Comment 23, line 195

desktop/src-tauri/crates/core/src/calendar.rs:195

/// Last date of the month for displayed end labels.

Comment 24, line 200

desktop/src-tauri/crates/core/src/calendar.rs:200

/// Date constructor for tests and callers.

Comment 25, line 211

desktop/src-tauri/crates/core/src/calendar.rs:211

// Monday 2025-12-29 belongs to ISO 2026 week 1.

Comment 26, line 215

desktop/src-tauri/crates/core/src/calendar.rs:215

// 2024-12-30 through 2025-01-05 belongs to 2025-W01.

Comment 27, line 217

desktop/src-tauri/crates/core/src/calendar.rs:217

// The first ISO week of 2027 starts on 2027-01-04.

Comment 28, line 225

desktop/src-tauri/crates/core/src/calendar.rs:225

// Spring-forward 2026-03-08 has 23 hours.

Comment 29, line 228

desktop/src-tauri/crates/core/src/calendar.rs:228

// Fall-back 2026-11-01 has 25 hours.

Comment 30, line 231

desktop/src-tauri/crates/core/src/calendar.rs:231

// An ordinary day has 24 hours.