Table of Contents

Class CopyrightNotice.YearItem

Namespace
FVNever.Reuse
Assembly
FVNever.Reuse.dll

Container for either a year or a year range (like 2025–2026).

public abstract record CopyrightNotice.YearItem : IEquatable<CopyrightNotice.YearItem>
Inheritance
CopyrightNotice.YearItem
Implements
Derived
Inherited Members

Methods

MergeCompact(IEnumerable<YearItem>, IEnumerable<YearItem>)

Merges two year sequences into the most compact sequence describing exactly the same set of years: duplicates are removed, and overlapping or adjacent items are joined (e.g. 2022, 2023, and 2024 become 2022–2024). Gaps between the years are preserved.

public static IEnumerable<CopyrightNotice.YearItem> MergeCompact(IEnumerable<CopyrightNotice.YearItem> first, IEnumerable<CopyrightNotice.YearItem> second)

Parameters

first IEnumerable<CopyrightNotice.YearItem>

The first sequence of years.

second IEnumerable<CopyrightNotice.YearItem>

The second sequence of years.

Returns

IEnumerable<CopyrightNotice.YearItem>

The merged items, sorted in ascending order.

Remarks

Reversed ranges (e.g. 2027–2026) are treated as if their bounds were in order. Ranges covering only one year are returned as CopyrightNotice.YearItem.SingleYear.

MergeExpansive(IEnumerable<YearItem>, IEnumerable<YearItem>)

Merges two year sequences into a single item covering every year from both of them, filling any gaps (e.g. 2020, 2024–2025 and 2022 become 2020–2025).

public static CopyrightNotice.YearItem? MergeExpansive(IEnumerable<CopyrightNotice.YearItem> first, IEnumerable<CopyrightNotice.YearItem> second)

Parameters

first IEnumerable<CopyrightNotice.YearItem>

The first sequence of years.

second IEnumerable<CopyrightNotice.YearItem>

The second sequence of years.

Returns

CopyrightNotice.YearItem

A CopyrightNotice.YearItem.SingleYear if all the input years are the same, a CopyrightNotice.YearItem.YearRange otherwise, or null if both sequences are empty.

Remarks

Reversed ranges (e.g. 2027–2026) are treated as if their bounds were in order.