songyc macbook 05b2d392c8 fix(diary): calendar month drift + export date picks off-by-one at custom day start
'하루 시작 시간'이 자정보다 늦게 설정된 경우의 논리적 하루 경계 버그 2건:

- 달력: monthAnchor(자정 키)를 monthRange(containing:)에 그대로 넣어
  매달 1일에 이전 달 그리드가 그려지고 헤더(현재 달)와 불일치했다.
  키를 dayRange(forKey:).lowerBound로 실제 시각으로 변환해 전달
  (기록·통계 탭이 쓰는 기존 패턴). monthSummary 카운트도 동일 수정.
- 내보내기: '날짜 지정'(MultiDatePicker)의 선택일(자정 Date)을 dayKey(for:)에
  넣어 전날 일기가 내보내졌다. DiaryEntry.dayKey가 "달력일의 자정"이므로
  선택 달력일의 startOfDay를 키로 직접 사용 — 하루 시작 시간이 몇 시든 안전.
  '구간 지정'도 같은 원리로 통일(표시된 달력일 = 내보내는 일기 날짜 보장).

CLAUDE.md §4.1에 재발 방지 규칙 추가: 자정 키를 dayKey(for:)/~Range(containing:)에
재투입 금지, 달력 UI 선택일은 startOfDay를 키로 직접 사용.

검증: 하루 시작 00:00/06:00/18:00 전부 수치 검증(수정 전 06:00에서 이전 달·전날
재현 확인), Debug·Store 빌드 성공, iPad 시뮬레이터에 하루 시작 06:00 주입 후
달력(7월 헤더·그리드 일치, 마커 2건)과 내보내기 시트("일기를 쓴 날 2일") 확인.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013yKDMhuF39GVYy3FMcGHh7
2026-07-15 16:07:05 +09:00
2025-05-17 18:21:24 +09:00
2025-09-14 19:51:16 +09:00
Description
This is a repository where I have collected my study codes, project codes I have worked on so far, and setting files.
330 MiB
Languages
Swift 78.6%
Python 6.7%
C 6%
Java 4.4%
TypeScript 3%
Other 1.3%