Soenneker.Extensions.DateTime.Week
11.0.1678
Prefix Reserved
dotnet add package Soenneker.Extensions.DateTime.Week --version 11.0.1678
NuGet\Install-Package Soenneker.Extensions.DateTime.Week -Version 11.0.1678
<PackageReference Include="Soenneker.Extensions.DateTime.Week" Version="11.0.1678" />
<PackageVersion Include="Soenneker.Extensions.DateTime.Week" Version="11.0.1678" />
<PackageReference Include="Soenneker.Extensions.DateTime.Week" />
paket add Soenneker.Extensions.DateTime.Week --version 11.0.1678
#r "nuget: Soenneker.Extensions.DateTime.Week, 11.0.1678"
#:package Soenneker.Extensions.DateTime.Week@11.0.1678
#addin nuget:?package=Soenneker.Extensions.DateTime.Week&version=11.0.1678
#tool nuget:?package=Soenneker.Extensions.DateTime.Week&version=11.0.1678
Soenneker.Extensions.DateTime.Week
Computes Monday-based week boundaries and ISO-8601 week numbers for DateTime, with optional time-zone-aware UTC results.
Installation
dotnet add package Soenneker.Extensions.DateTime.Week
Week boundaries
using Soenneker.Extensions.DateTime.Week;
System.DateTime value = new(2026, 8, 29, 16, 42, 30, DateTimeKind.Utc);
System.DateTime start = value.ToStartOfWeek();
System.DateTime end = value.ToEndOfWeek();
System.DateTime previousStart = value.ToStartOfPreviousWeek();
System.DateTime nextEnd = value.ToEndOfNextWeek();
Weeks always begin Monday at 00:00:00; they do not depend on the current culture. End methods return one tick before the following Monday.
| Method pair | Selected week |
|---|---|
ToStartOfWeek() / ToEndOfWeek() |
Current |
ToStartOfPreviousWeek() / ToEndOfPreviousWeek() |
Previous |
ToStartOfNextWeek() / ToEndOfNextWeek() |
Next |
These methods operate on the input calendar fields and preserve Kind. They do not perform time-zone conversion.
Time-zone-aware boundaries
TimeZoneInfo eastern = TimeZoneInfo.FindSystemTimeZoneById("America/New_York");
System.DateTime utc = new(2026, 8, 29, 18, 0, 0, DateTimeKind.Utc);
System.DateTime localWeekStartUtc = utc.ToStartOfTzWeek(eastern);
System.DateTime localWeekEndUtc = utc.ToEndOfTzWeek(eastern);
Time-zone variants cover the current, previous, and next local week and return boundaries as UTC DateTime values. Their names follow the same pattern, including ToStartOfPreviousTzWeek() and ToEndOfNextTzWeek().
If the input Kind is not Utc, its fields are treated as UTC rather than converted from the machine's local zone. Supply an actual UTC value to avoid ambiguity.
Week ends are one tick before the following valid local Monday boundary. If local Monday midnight falls in a daylight-saving gap, the boundary advances to the first valid local minute; if it is ambiguous, the earlier UTC instant is selected.
ISO week numbers
int utcWeek = utc.ToUtcWeekNumber();
int easternWeek = utc.ToTzWeekNumber(eastern);
Both methods use ISO-8601 rules: Monday is the first weekday, and week 1 is the week containing January 4. ToUtcWeekNumber() applies those rules to the input date fields without converting them. ToTzWeekNumber() first selects the calendar date in the supplied time zone.
Only the week number (1–53) is returned. If the associated ISO week-year is also required, use System.Globalization.ISOWeek.GetYear() on the same calendar date.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net11.0 is compatible. |
-
net11.0
- Soenneker.Extensions.DateTime (>= 11.0.1859)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Soenneker.Extensions.DateTime.Week:
| Package | Downloads |
|---|---|
|
Soenneker.Extensions.DateTime.Suite
A collection of all the DateTime precision extension methods |
|
|
Soenneker.Utils.DateTime
A utility library for helpful DateTime related operations |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 11.0.1678 | 44 | 11/14/2026 |
| 11.0.1677 | 161 | 11/11/2026 |
| 11.0.1676 | 58 | 11/11/2026 |
| 11.0.1675 | 78 | 11/11/2026 |
| 11.0.1673 | 87 | 11/11/2026 |
| 11.0.1672 | 93 | 11/11/2026 |
| 11.0.1671 | 51 | 11/11/2026 |
| 11.0.1670 | 81 | 11/11/2026 |
| 11.0.1669 | 112 | 11/10/2026 |
| 11.0.1668 | 61 | 11/10/2026 |
| 11.0.1667 | 515 | 11/3/2026 |
| 11.0.1666 | 155 | 11/3/2026 |
| 11.0.1665 | 119 | 11/3/2026 |
| 11.0.1664 | 226 | 10/27/2026 |
| 11.0.1663 | 161 | 10/26/2026 |
| 11.0.1662 | 104 | 10/26/2026 |
| 11.0.1661 | 126 | 10/26/2026 |
| 11.0.1660 | 124 | 10/26/2026 |
| 11.0.1659 | 132 | 10/26/2026 |
| 4.0.1658 | 456 | 10/15/2026 |
Update dependency Soenneker.Extensions.DateTime to 11.0.1859 (#2072)