Soenneker.Extensions.DateTimeOffsets.DayOfWeeks
4.0.133
Prefix Reserved
See the version list below for details.
dotnet add package Soenneker.Extensions.DateTimeOffsets.DayOfWeeks --version 4.0.133
NuGet\Install-Package Soenneker.Extensions.DateTimeOffsets.DayOfWeeks -Version 4.0.133
<PackageReference Include="Soenneker.Extensions.DateTimeOffsets.DayOfWeeks" Version="4.0.133" />
<PackageVersion Include="Soenneker.Extensions.DateTimeOffsets.DayOfWeeks" Version="4.0.133" />
<PackageReference Include="Soenneker.Extensions.DateTimeOffsets.DayOfWeeks" />
paket add Soenneker.Extensions.DateTimeOffsets.DayOfWeeks --version 4.0.133
#r "nuget: Soenneker.Extensions.DateTimeOffsets.DayOfWeeks, 4.0.133"
#:package Soenneker.Extensions.DateTimeOffsets.DayOfWeeks@4.0.133
#addin nuget:?package=Soenneker.Extensions.DateTimeOffsets.DayOfWeeks&version=4.0.133
#tool nuget:?package=Soenneker.Extensions.DateTimeOffsets.DayOfWeeks&version=4.0.133
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.153)
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.141 | 56 | 9/16/2026 |
| 4.0.140 | 74 | 9/16/2026 |
| 4.0.139 | 56 | 9/16/2026 |
| 4.0.138 | 42 | 9/15/2026 |
| 4.0.137 | 181 | 9/13/2026 |
| 4.0.136 | 85 | 9/13/2026 |
| 4.0.135 | 151 | 9/13/2026 |
| 4.0.134 | 132 | 9/12/2026 |
| 4.0.133 | 161 | 9/12/2026 |
| 4.0.132 | 98 | 9/12/2026 |
| 4.0.131 | 238 | 9/10/2026 |
| 4.0.130 | 175 | 9/9/2026 |
| 4.0.129 | 232 | 9/8/2026 |
| 4.0.128 | 158 | 9/8/2026 |
| 4.0.127 | 163 | 9/7/2026 |
| 4.0.126 | 170 | 9/7/2026 |
| 4.0.125 | 85 | 9/7/2026 |
| 4.0.124 | 142 | 9/7/2026 |
| 4.0.123 | 298 | 9/5/2026 |
| 4.0.120 | 274 | 9/1/2026 |
Update dependency Soenneker.Extensions.DateTimeOffsets.Days to 4.0.153 (#289)