Soenneker.Extensions.DateTimeOffsets.DayOfWeeks
4.0.144
Prefix Reserved
dotnet add package Soenneker.Extensions.DateTimeOffsets.DayOfWeeks --version 4.0.144
NuGet\Install-Package Soenneker.Extensions.DateTimeOffsets.DayOfWeeks -Version 4.0.144
<PackageReference Include="Soenneker.Extensions.DateTimeOffsets.DayOfWeeks" Version="4.0.144" />
<PackageVersion Include="Soenneker.Extensions.DateTimeOffsets.DayOfWeeks" Version="4.0.144" />
<PackageReference Include="Soenneker.Extensions.DateTimeOffsets.DayOfWeeks" />
paket add Soenneker.Extensions.DateTimeOffsets.DayOfWeeks --version 4.0.144
#r "nuget: Soenneker.Extensions.DateTimeOffsets.DayOfWeeks, 4.0.144"
#:package Soenneker.Extensions.DateTimeOffsets.DayOfWeeks@4.0.144
#addin nuget:?package=Soenneker.Extensions.DateTimeOffsets.DayOfWeeks&version=4.0.144
#tool nuget:?package=Soenneker.Extensions.DateTimeOffsets.DayOfWeeks&version=4.0.144
Soenneker.Extensions.DateTimeOffsets.DayOfWeeks
Moves a DateTimeOffset to the strictly previous or next occurrence of a weekday, with optional day boundaries and time-zone-aware UTC results.
Installation
dotnet add package Soenneker.Extensions.DateTimeOffsets.DayOfWeeks
Navigate using the stored offset
using Soenneker.Extensions.DateTimeOffsets.DayOfWeeks;
DateTimeOffset monday = new(2026, 8, 31, 15, 30, 0, TimeSpan.FromHours(-4));
DateTimeOffset previousFriday = monday.ToPreviousDayOfWeek(DayOfWeek.Friday);
DateTimeOffset nextMonday = monday.ToNextDayOfWeek(DayOfWeek.Monday);
DateTimeOffset previousFridayStart = monday.ToStartOfPreviousDayOfWeek(DayOfWeek.Friday);
DateTimeOffset nextFridayEnd = monday.ToEndOfNextDayOfWeek(DayOfWeek.Friday);
Navigation is strict. If the input is already on the requested weekday, the result is seven days away.
ToPreviousDayOfWeek() and ToNextDayOfWeek() preserve the input time and offset. Start/end variants reset the stored clock fields to midnight or one tick before the following date while preserving that offset. These methods do not apply a named time zone's DST rules.
Navigate in a time zone
TimeZoneInfo eastern = TimeZoneInfo.FindSystemTimeZoneById("America/New_York");
DateTimeOffset instant = new(2026, 8, 29, 18, 0, 0, TimeSpan.Zero);
DateTimeOffset nextMondayStartUtc =
instant.ToStartOfNextTzDayOfWeek(DayOfWeek.Monday, eastern);
DateTimeOffset previousFridayEndUtc =
instant.ToEndOfPreviousTzDayOfWeek(DayOfWeek.Friday, eastern);
The time-zone variants determine the instant's local date, select the strictly previous or next matching weekday, and return the boundary with offset +00:00:
ToStartOfPreviousTzDayOfWeek()ToStartOfNextTzDayOfWeek()ToEndOfPreviousTzDayOfWeek()ToEndOfNextTzDayOfWeek()
Starts resolve local midnight using the zone's rules. A midnight in a gap advances to the first valid local time; an ambiguous midnight selects the earlier UTC instant. Ends are one tick before the next valid local day boundary, so 23-hour and 25-hour days are handled without assuming a fixed 24-hour duration.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Soenneker.Extensions.DateTimeOffsets.Days (>= 4.0.164)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Soenneker.Extensions.DateTimeOffsets.DayOfWeeks:
| Package | Downloads |
|---|---|
|
Soenneker.Extensions.DateTimeOffsets.Suite
A collection of all of the helpful DateTimeOffset extension methods |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.144 | 59 | 9/25/2026 |
| 4.0.143 | 45 | 9/25/2026 |
| 4.0.142 | 44 | 9/24/2026 |
| 4.0.141 | 376 | 9/16/2026 |
| 4.0.140 | 175 | 9/16/2026 |
| 4.0.139 | 125 | 9/16/2026 |
| 4.0.138 | 87 | 9/15/2026 |
| 4.0.137 | 232 | 9/13/2026 |
| 4.0.136 | 93 | 9/13/2026 |
| 4.0.135 | 173 | 9/13/2026 |
| 4.0.134 | 153 | 9/12/2026 |
| 4.0.133 | 184 | 9/12/2026 |
| 4.0.132 | 108 | 9/12/2026 |
| 4.0.131 | 259 | 9/10/2026 |
| 4.0.130 | 185 | 9/9/2026 |
| 4.0.129 | 240 | 9/8/2026 |
| 4.0.128 | 162 | 9/8/2026 |
| 4.0.127 | 172 | 9/7/2026 |
| 4.0.126 | 177 | 9/7/2026 |
| 4.0.125 | 90 | 9/7/2026 |
Updated NuGet packages