Class DateAdjusters | Noda Time
Show / Hide Table of Contents
Class DateAdjusters
Factory class for date adjusters: functions from
LocalDate
to
LocalDate
which can be applied to
LocalDate
LocalDateTime
, and
OffsetDateTime
Since
2.0.x
Availability
net8.0, netstandard2.0
Inheritance
object
DateAdjusters
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace
NodaTime
Assembly
: NodaTime.dll
Syntax
public static class DateAdjusters
Properties
EndOfMonth
A date adjuster to move to the last day of the current month.
Since
2.0.x
Availability
net8.0, netstandard2.0
Declaration
public static Func
Property Value
Type
Description
Func
LocalDate
LocalDate
A date adjuster to move to the last day of the current month.
StartOfMonth
A date adjuster to move to the first day of the current month.
Since
2.0.x
Availability
net8.0, netstandard2.0
Declaration
public static Func
Property Value
Type
Description
Func
LocalDate
LocalDate
A date adjuster to move to the first day of the current month.
Methods
AddPeriod(Period)
Creates a date adjuster to add the specified period to the date.
Since
3.0.x
Availability
net8.0, netstandard2.0
Declaration
public static Func
Parameters
Type
Name
Description
Period
period
The period to add when the adjuster is invoked. Must not contain any (non-zero) time units.
Returns
Type
Description
Func
LocalDate
LocalDate
An adjuster which adds the specified period.
Remarks
This is the adjuster equivalent of
Plus(Period)
Sample snippet
using NodaTime;
using System;
LocalDateTime localDateTime = new LocalDateTime(1985, 10, 26, 1, 18);
Offset offset = Offset.FromHours(-5);
OffsetDateTime original = new OffsetDateTime(localDateTime, offset);
var dateAdjuster = DateAdjusters.AddPeriod(Period.FromYears(30));
OffsetDateTime updated = original.With(dateAdjuster);
Console.WriteLine(updated.LocalDateTime);
Console.WriteLine(updated.Offset);
Output:
10/26/2015 01:18:00
-05
DayOfMonth(int)
A date adjuster to move to the specified day of the current month.
Since
2.0.x
Availability
net8.0, netstandard2.0
Declaration
public static Func
Parameters
Type
Name
Description
int
day
The day of month to adjust dates to.
Returns
Type
Description
Func
LocalDate
LocalDate
An adjuster which changes the day to
day
retaining the same year and month.
Remarks
The returned adjuster will throw an exception if it is applied to a date
that would create an invalid result.
Sample snippet
using NodaTime;
using System;
var start = new LocalDate(2014, 6, 27);
var adjuster = DateAdjusters.DayOfMonth(19);
Console.WriteLine(adjuster(start));
Output:
Thursday, 19 June 2014
Month(int)
A date adjuster to move to the same day of the specified month.
Since
2.0.x
Availability
net8.0, netstandard2.0
Declaration
public static Func
Parameters
Type
Name
Description
int
month
The month to adjust dates to.
Returns
Type
Description
Func
LocalDate
LocalDate
An adjuster which changes the month to
month
retaining the same year and day of month.
Remarks
The returned adjuster will throw an exception if it is applied to a date
that would create an invalid result.
Sample snippet
using NodaTime;
using System;
var start = new LocalDate(2014, 6, 27);
var adjuster = DateAdjusters.Month(2);
Console.WriteLine(adjuster(start));
Output:
Thursday, 27 February 2014
Next(IsoDayOfWeek)
A date adjuster to move to the next specified day-of-week, adding
a week if the day is already correct.
Since
2.0.x
Availability
net8.0, netstandard2.0
Declaration
public static Func
Parameters
Type
Name
Description
IsoDayOfWeek
dayOfWeek
The day-of-week to adjust dates to.
Returns
Type
Description
Func
LocalDate
LocalDate
An adjuster which advances a date to the next occurrence of the
specified day-of-week.
Remarks
This is the adjuster equivalent of
Next(IsoDayOfWeek)
Sample snippet
using NodaTime;
using System;
var start = new LocalDate(2014, 6, 27);
var adjuster = DateAdjusters.Next(IsoDayOfWeek.Thursday);
Console.WriteLine(adjuster(start));
Output:
Thursday, 03 July 2014
NextOrSame(IsoDayOfWeek)
A date adjuster to move to the next specified day-of-week, but return the
original date if the day is already correct.
Since
2.0.x
Availability
net8.0, netstandard2.0
Declaration
public static Func
Parameters
Type
Name
Description
IsoDayOfWeek
dayOfWeek
The day-of-week to adjust dates to.
Returns
Type
Description
Func
LocalDate
LocalDate
An adjuster which advances a date to the next occurrence of the
specified day-of-week, or the original date if the day is already correct.
Sample snippet
using NodaTime;
using System;
var start = new LocalDate(2014, 6, 27);
var adjuster = DateAdjusters.NextOrSame(IsoDayOfWeek.Friday);
Console.WriteLine(adjuster(start));
Output:
Friday, 27 June 2014
Previous(IsoDayOfWeek)
A date adjuster to move to the previous specified day-of-week, subtracting
a week if the day is already correct.
Since
2.0.x
Availability
net8.0, netstandard2.0
Declaration
public static Func
Parameters
Type
Name
Description
IsoDayOfWeek
dayOfWeek
The day-of-week to adjust dates to.
Returns
Type
Description
Func
LocalDate
LocalDate
An adjuster which advances a date to the previous occurrence of the
specified day-of-week.
Remarks
This is the adjuster equivalent of
Previous(IsoDayOfWeek)
Sample snippet
using NodaTime;
using System;
var start = new LocalDate(2014, 6, 27);
var adjuster = DateAdjusters.Previous(IsoDayOfWeek.Thursday);
Console.WriteLine(adjuster(start));
Output:
Thursday, 26 June 2014
PreviousOrSame(IsoDayOfWeek)
A date adjuster to move to the previous specified day-of-week, but return the
original date if the day is already correct.
Since
2.0.x
Availability
net8.0, netstandard2.0
Declaration
public static Func
Parameters
Type
Name
Description
IsoDayOfWeek
dayOfWeek
The day-of-week to adjust dates to.
Returns
Type
Description
Func
LocalDate
LocalDate
An adjuster which advances a date to the previous occurrence of the
specified day-of-week, or the original date if the day is already correct.
Sample snippet
using NodaTime;
using System;
var start = new LocalDate(2014, 6, 27);
var adjuster = DateAdjusters.PreviousOrSame(IsoDayOfWeek.Friday);
Console.WriteLine(adjuster(start));
Output:
Friday, 27 June 2014