# Deadlines and calendar: corpus forms Analysis of real fragments: package identifier, act name, the key fragment, form rating (exemplary / debatable / wrong-form choice) and why. Corpus-wide counts relevant to periods (508 packages): `N months/years` — 769 in 56 packages (a `Quantity` with a unit, not a duration); `days_between` in a guard — 188 packages; rule-variable window bounds — 563 versus 3,929 literals; `window` — 4,674 occurrences in 257 packages; `deadline` as a `Date` variable/parameter name in a window bound — 687 in 18 (NOT a norm keyword). ## Law ### 1. French Civil Code — limitation by calendar step (exemplary, inspected) Package `fr.code_civil` — French Civil Code (France), prescription title: ```law rule EcheanceCinqAns(c: Causa, depart: Date) strict { label fr official "délai de cinq ans, compté par jours"; ... when point_de_depart_cinq_ans_le(c, depart) and prescription_non_interrompue(c); then echeance_prescription_le(c, add_calendar_period(depart, 5 calendar_year)); } ``` Exemplary: the five-year period — an `add_calendar_period` step, the policy — a case-context line (`deadline_policy OECD_CODE_CIVIL_PRESCRIPTION` in every scenario test). The leap edge (29.02.2000 + 30 years → 28.02.2030) is closed by the same policy with `month_end`. The same form — in the directory examples. ### 2. Turkish Constitution — months and years by step, not days (exemplary, inspected) Package `tr.constitution` — Turkish Constitution (Türkiye), judiciary title: ```law // Пять месяцев — КАЛЕНДАРНАЯ единица; шаг делает `add_calendar_period`, rule ConcreteReviewFiveMonthTerm(c: JudicialCase, received: Date) strict { ... when referral_received_on(c, received); then constitutional_decision_due_on(c, add_calendar_period(received, 5 calendar_month)); } ``` And the moratorium year on electoral-law changes in the same package — `held < add_calendar_period(in_force, 1 calendar_year)` with the comment "a year is not measured in days without a leap decision the text never took". Exemplary twice: the period unit comes from the text, the comment pins why not days. ### 3. Home medicine — policy and context profile (exemplary, inspected) Package `med.home_child` — home child-care guidance (medical corpus): ```law // Политики сроков дела, которые сценарии пакета подавали встроенным // `deadline_policy { … }` (форма 0.1; в 0.2 — LDC-E1333): объявлены // именованно с теми же полями, сценарии ссылаются на них по имени. deadline policy CASE_SAME_DAY_NO_ROLL_MONTH_END_LAST_DAY { start_count same_day; include_end true; roll no_roll; month_end last_day_of_month; } ``` And one scenario test: the `ORVI_DEADLINE` profile with a policy, `context extends`. Exemplary: the form migration named in the comment; the rule reads the period through another package, and the case carries the policy. ## Standard and regulation ### 4. EU Regulation 261/2004 — measurement instead of a step (exemplary, inspected) Package `eu.transport.air_passenger_rights` — EU air passenger rights rules (European Union): ```law // СЕМИДНЕВНЫЙ СРОК СЧИТАЕТСЯ `days_between`, А НЕ `add_business_days`, и это // E-0029) — даже для единицы `calendar_day`, которая ничего не пропускает, — // а календаря нерабочих дней для двадцати семи государств-членов не // устанавливает ни один закреплённый источник. ... ``` Exemplary as a "not counting" decision: "within seven days" is an interval condition (`days_between`), not a forward step. The comment also pins the second reading point (the text does not name the period start — the chosen reading is "from the option choice", not a default). ## Religion and customs ### 5. Halal certification — business days as a case fact (exemplary, inspected) Package `id.halal` — Indonesian halal certification rules (Indonesia): ```law // СРОКИ В РАБОЧИХ ДНЯХ НЕ ВЫЧИСЛЯЮТСЯ, И ПРИЧИНА НАЗВАНА. ... Терм // календарь Индонезии задаётся ежегодным совместным решением трёх министров // (SKB), которого настоящий пакет не закрепляет. ... Поэтому число истекших // рабочих дней приходит фактом дела, а СРАВНЕНИЕ с установленным законом // пределом — здесь, литералом в правиле. ``` Exemplary: the boundary named, not bypassed — the threshold is formalized and checkable by a pair of cases on both sides of the boundary; only the counting stays untaken, and it is untaken by name. The anti-model ("weekends-only snapshot") is taken apart there too: the period would expire earlier than real — a mistake to the dangerous side. ## Calendar data ### 6. German holidays — `law.calendar/0.1` dataset (exemplary) Package `de.labor.burlg` — German nationwide holiday calendar (Germany): ```json { "id": "urn:de:corpus:clir:bgb-fristen#kalender-bundesweit", "overrides": [ { "date": "1991-01-01", "intervals": [], "working": false }, ... ] } ``` Exemplary for calendar datasets: an immutable versioned dataset with weekly schedules and date overrides; digest over the resource's exact bytes, the `law.lock` line (`calendar-dataset`, `law.calendar/0.1`) — the normative resolution path, not a `resource` URI. A state's official calendar is external context: read as data, pinned by digest, not part of CLIR.