Noda Time
Show / Hide Table of Contents

Struct LocalDate

LocalDate is an immutable struct representing a date within the calendar, with no reference to a particular time zone or time of day.
Since 1.0.x
Availability net6.0, netstandard2.0
Implements
IEquatable<LocalDate>
IComparable<LocalDate>
IComparable
IFormattable
IXmlSerializable
Inherited Members
Object.Equals(Object, Object)
Object.GetType()
Object.ReferenceEquals(Object, Object)
Namespace: NodaTime
Assembly: NodaTime.dll
Syntax
[TypeConverter(typeof(LocalDateTypeConverter))]
public readonly struct LocalDate : IEquatable<LocalDate>, IComparable<LocalDate>, IComparable, IFormattable, IXmlSerializable
Remarks

Values can freely be compared for equality: a value in a different calendar system is not equal to a value in a different calendar system. However, ordering comparisons (either via the CompareTo(LocalDate) method or via operators) fail with System.ArgumentException; attempting to compare values in different calendars almost always indicates a bug in the calling code.

Constructors

LocalDate(Era, Int32, Int32, Int32)

Constructs an instance for the given era, year of era, month and day in the ISO calendar.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public LocalDate(Era era, int yearOfEra, int month, int day)
Parameters
Type Name Description
Era era The era within which to create a date. Must be a valid era within the ISO calendar.
Int32 yearOfEra The year of era.
Int32 month The month of year.
Int32 day The day of month.
Sample snippet
using NodaTime;
using NodaTime.Calendars;
using System;

LocalDate date = new LocalDate(Era.BeforeCommon, 2010, 6, 16);
Console.WriteLine(date);

Output:

Sunday, 16 June 2010

Exceptions
Type Condition
ArgumentOutOfRangeException The parameters do not form a valid date.

LocalDate(Era, Int32, Int32, Int32, CalendarSystem)

Constructs an instance for the given era, year of era, month and day in the specified calendar.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public LocalDate(Era era, int yearOfEra, int month, int day, CalendarSystem calendar)
Parameters
Type Name Description
Era era The era within which to create a date. Must be a valid era within the specified calendar.
Int32 yearOfEra The year of era.
Int32 month The month of year.
Int32 day The day of month.
CalendarSystem calendar Calendar system in which to create the date.
Exceptions
Type Condition
ArgumentOutOfRangeException The parameters do not form a valid date.

LocalDate(Int32, Int32, Int32)

Constructs an instance for the given year, month and day in the ISO calendar.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public LocalDate(int year, int month, int day)
Parameters
Type Name Description
Int32 year The year. This is the "absolute year", so a value of 0 means 1 BC, for example.
Int32 month The month of year.
Int32 day The day of month.
Sample snippet
using NodaTime;
using System;
using System.Globalization;

LocalDate date = new LocalDate(2010, 6, 16);
Console.WriteLine(date.ToString("uuuu-MM-dd", CultureInfo.InvariantCulture));
Console.WriteLine(date.Year);
Console.WriteLine(date.Month);
Console.WriteLine(date.Day);

Output:

2010-06-16
2010
6
16

Exceptions
Type Condition
ArgumentOutOfRangeException The parameters do not form a valid date.

LocalDate(Int32, Int32, Int32, CalendarSystem)

Constructs an instance for the given year, month and day in the specified calendar.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public LocalDate(int year, int month, int day, CalendarSystem calendar)
Parameters
Type Name Description
Int32 year The year. This is the "absolute year", so, for the ISO calendar, a value of 0 means 1 BC, for example.
Int32 month The month of year.
Int32 day The day of month.
CalendarSystem calendar Calendar system in which to create the date.
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16, CalendarSystem.Iso);
Console.WriteLine(date);

Output:

Wednesday, 16 June 2010

Exceptions
Type Condition
ArgumentOutOfRangeException The parameters do not form a valid date.

Properties

Calendar

Gets the calendar system associated with this local date.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly CalendarSystem Calendar { get; }
Property Value
Type Description
CalendarSystem The calendar system associated with this local date.

Day

Gets the day of this local date within the month.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly int Day { get; }
Property Value
Type Description
Int32 The day of this local date within the month.
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16);
int result = date.Day;
Console.WriteLine(result);

Output:

16

DayOfWeek

Gets the week day of this local date expressed as an IsoDayOfWeek value.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly IsoDayOfWeek DayOfWeek { get; }
Property Value
Type Description
IsoDayOfWeek The week day of this local date expressed as an IsoDayOfWeek.
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16);
IsoDayOfWeek result = date.DayOfWeek;
Console.WriteLine(result);

Output:

Wednesday

DayOfYear

Gets the day of this local date within the year.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly int DayOfYear { get; }
Property Value
Type Description
Int32 The day of this local date within the year.
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16);
int result = date.DayOfYear;
Console.WriteLine(result);

Output:

167

Era

Gets the era of this local date.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly Era Era { get; }
Property Value
Type Description
Era The era of this local date.

MaxIsoValue

The maximum (latest) date representable in the ISO calendar system.
Since 2.1.x
Availability net6.0, netstandard2.0
Declaration
public static readonly LocalDate MaxIsoValue { get; }
Property Value
Type Description
LocalDate

MinIsoValue

The minimum (earliest) date representable in the ISO calendar system.
Since 2.1.x
Availability net6.0, netstandard2.0
Declaration
public static readonly LocalDate MinIsoValue { get; }
Property Value
Type Description
LocalDate

Month

Gets the month of this local date within the year.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly int Month { get; }
Property Value
Type Description
Int32 The month of this local date within the year.

Year

Gets the year of this local date.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly int Year { get; }
Property Value
Type Description
Int32 The year of this local date.
Remarks
This returns the "absolute year", so, for the ISO calendar, a value of 0 means 1 BC, for example.

YearOfEra

Gets the year of this local date within the era.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly int YearOfEra { get; }
Property Value
Type Description
Int32 The year of this local date within the era.

Methods

Add(LocalDate, Period)

Adds the specified period to the date. Fields are added in descending order of significance (years first, then months, and so on). Friendly alternative to operator+().
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate Add(LocalDate date, Period period)
Parameters
Type Name Description
LocalDate date The date to add the period to
Period period The period to add. Must not contain any (non-zero) time units.
Returns
Type Description
LocalDate The sum of the given date and period
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16);
LocalDate result = LocalDate.Add(date, Period.FromDays(3));
Console.WriteLine(result);

Output:

Saturday, 19 June 2010

AddSchema(XmlSchemaSet)

Adds the XML schema type describing the structure of the LocalTime XML serialization to the given xmlSchemaSet. the xmlSchemaSet.
Since 3.0.x
Availability net6.0, netstandard2.0
Declaration
public static XmlQualifiedName AddSchema(XmlSchemaSet xmlSchemaSet)
Parameters
Type Name Description
XmlSchemaSet xmlSchemaSet The XML schema set provided by System.Xml.Serialization.XmlSchemaExporter.
Returns
Type Description
XmlQualifiedName The qualified name of the schema type that was added to the xmlSchemaSet.

At(LocalTime)

Combines this LocalDate with the given LocalTime into a single LocalDateTime. Fluent alternative to operator+().
Since 1.3.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDateTime At(LocalTime time)
Parameters
Type Name Description
LocalTime time The time to combine with this date.
Returns
Type Description
LocalDateTime The LocalDateTime representation of the given time on this date
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16);
LocalTime time = new LocalTime(16, 20);
LocalDateTime dateTime = date.At(time);
Console.WriteLine(dateTime);

Output:

06/16/2010 16:20:00

AtMidnight()

Gets a LocalDateTime at midnight on the date represented by this local date.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDateTime AtMidnight()
Returns
Type Description
LocalDateTime The LocalDateTime representing midnight on this local date, in the same calendar system.
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16);
LocalDateTime dateTime = date.AtMidnight();
Console.WriteLine(dateTime);

Output:

06/16/2010 00:00:00

AtStartOfDayInZone(DateTimeZone)

Resolves this local date into a ZonedDateTime in the given time zone representing the start of this date in the given zone.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly ZonedDateTime AtStartOfDayInZone(DateTimeZone zone)
Parameters
Type Name Description
DateTimeZone zone The time zone to map this local date into
Returns
Type Description
ZonedDateTime The ZonedDateTime representing the earliest time on this date, in the given time zone.
Remarks
This is a convenience method for calling AtStartOfDay(LocalDate).
Exceptions
Type Condition
SkippedTimeException The entire day was skipped due to a very large time zone transition. (This is extremely rare.)

CompareTo(LocalDate)

Indicates whether this date is earlier, later or the same as another one. See the type documentation for a description of ordering semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly int CompareTo(LocalDate other)
Parameters
Type Name Description
LocalDate other The other date to compare this one with
Returns
Type Description
Int32 A value less than zero if this date is earlier than other; zero if this date is the same as other; a value greater than zero if this date is later than other.
Sample snippet
using NodaTime;
using System;

LocalDate date1 = new LocalDate(2010, 6, 16);
LocalDate date2 = new LocalDate(2010, 6, 16);
int result = date1.CompareTo(date2);
Console.WriteLine(result);

Output:

0

Exceptions
Type Condition
ArgumentException The calendar system of other is not the same as the calendar system of this value.

Deconstruct(out Int32, out Int32, out Int32)

Deconstructs the current instance into its components.
Since 2.3.x
Availability net6.0, netstandard2.0
Declaration
public readonly void Deconstruct(out int year, out int month, out int day)
Parameters
Type Name Description
Int32 year The year component of the date.
Int32 month The month component of the date.
Int32 day The day component of the date.

Deconstruct(out Int32, out Int32, out Int32, out CalendarSystem)

Deconstructs the current instance into its components.
Since 2.3.x
Availability net6.0, netstandard2.0
Declaration
public readonly void Deconstruct(out int year, out int month, out int day, out CalendarSystem calendar)
Parameters
Type Name Description
Int32 year The year component of the date.
Int32 month The month component of the date.
Int32 day The day component of the date.
CalendarSystem calendar The CalendarSystem associated with the date.

Equals(LocalDate)

Compares two LocalDate values for equality. See the type documentation for a description of ordering semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly bool Equals(LocalDate other)
Parameters
Type Name Description
LocalDate other The value to compare this date with.
Returns
Type Description
Boolean True if the given value is another local date equal to this one; false otherwise.
Sample snippet
using NodaTime;
using System;

LocalDate date1 = new LocalDate(2010, 6, 16);
LocalDate date2 = new LocalDate(2010, 6, 16);
bool result = date1.Equals(date2);
Console.WriteLine(result);

Output:

True

Equals(Object)

Compares two LocalDate values for equality. See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public override readonly bool Equals(object obj)
Parameters
Type Name Description
Object obj The object to compare this date with.
Returns
Type Description
Boolean True if the given value is another local date equal to this one; false otherwise.
Overrides
System.ValueType.Equals(System.Object)
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16);
object dateAsObject = new LocalDate(2010, 6, 16);
bool result = date.Equals(dateAsObject);
Console.WriteLine(result);

Output:

True

FromDateOnly(DateOnly)

Constructs a LocalDate from a System.DateOnly.
Since 3.1.x
Availability net6.0
Declaration
public static LocalDate FromDateOnly(DateOnly date)
Parameters
Type Name Description
DateOnly date The date to convert.
Returns
Type Description
LocalDate The LocalDate equivalent, which is always in the ISO calendar system.

FromDateTime(DateTime)

Converts a System.DateTime of any kind to a LocalDate in the ISO calendar, ignoring the time of day. This does not perform any time zone conversions, so a DateTime with a System.DateTime.Kind of System.DateTimeKind.Utc will still represent the same year/month/day - it won't be converted into the local system time.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate FromDateTime(DateTime dateTime)
Parameters
Type Name Description
DateTime dateTime Value to convert into a Noda Time local date
Returns
Type Description
LocalDate A new LocalDate with the same values as the specified DateTime.
Sample snippet
using NodaTime;
using System;

DateTime earlyJune = new DateTime(2010, 6, 5);
LocalDate date = LocalDate.FromDateTime(earlyJune);
Console.WriteLine(date);

Output:

Saturday, 05 June 2010

FromDateTime(DateTime, CalendarSystem)

Converts a System.DateTime of any kind to a LocalDate in the specified calendar, ignoring the time of day. This does not perform any time zone conversions, so a DateTime with a System.DateTime.Kind of System.DateTimeKind.Utc will still represent the same year/month/day - it won't be converted into the local system time.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate FromDateTime(DateTime dateTime, CalendarSystem calendar)
Parameters
Type Name Description
DateTime dateTime Value to convert into a Noda Time local date
CalendarSystem calendar The calendar system to convert into
Returns
Type Description
LocalDate A new LocalDate with the same values as the specified DateTime.
Sample snippet
using NodaTime;
using System;

DateTime earlyJune = new DateTime(2010, 6, 5);
CalendarSystem calendar = CalendarSystem.ForId("Julian");
LocalDate date = LocalDate.FromDateTime(earlyJune, calendar);
// Between the years 2000 and 2099, the Julian calendar is 13 days behind the Gregorian calendar.
Console.WriteLine(date.Year);
Console.WriteLine(date.Month);
Console.WriteLine(date.Day);

Output:

2010
5
23

FromWeekYearWeekAndDay(Int32, Int32, IsoDayOfWeek)

Returns the local date corresponding to the given "week year", "week of week year", and "day of week" in the ISO calendar system, using the ISO week-year rules.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate FromWeekYearWeekAndDay(int weekYear, int weekOfWeekYear, IsoDayOfWeek dayOfWeek)
Parameters
Type Name Description
Int32 weekYear ISO-8601 week year of value to return
Int32 weekOfWeekYear ISO-8601 week of week year of value to return
IsoDayOfWeek dayOfWeek ISO-8601 day of week to return
Returns
Type Description
LocalDate The date corresponding to the given week year / week of week year / day of week.
Sample snippet
using NodaTime;
using System;

LocalDate date = LocalDate.FromWeekYearWeekAndDay(2010, 24, IsoDayOfWeek.Wednesday);
Console.WriteLine(date);

Output:

Wednesday, 16 June 2010

FromYearMonthWeekAndDay(Int32, Int32, Int32, IsoDayOfWeek)

Returns the local date corresponding to a particular occurrence of a day-of-week within a year and month. For example, this method can be used to ask for "the third Monday in April 2012".
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate FromYearMonthWeekAndDay(int year, int month, int occurrence, IsoDayOfWeek dayOfWeek)
Parameters
Type Name Description
Int32 year The year of the value to return.
Int32 month The month of the value to return.
Int32 occurrence The occurrence of the value to return, which must be in the range [1, 5]. The value 5 can be used to always return the last occurrence of the specified day-of-week, even if there are only 4 occurrences of that day-of-week in the month.
IsoDayOfWeek dayOfWeek The day-of-week of the value to return.
Returns
Type Description
LocalDate The date corresponding to the given year and month, on the given occurrence of the given day of week.
Remarks
The returned date is always in the ISO calendar. This method is unrelated to week-years and any rules for "business weeks" and the like - if a month begins on a Friday, then asking for the first Friday will give that day, for example.
Sample snippet
using NodaTime;
using System;

LocalDate date = LocalDate.FromYearMonthWeekAndDay(2010, 6, 3, IsoDayOfWeek.Wednesday);
Console.WriteLine(date);

Output:

Wednesday, 16 June 2010

GetHashCode()

Returns a hash code for this local date. See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public override readonly int GetHashCode()
Returns
Type Description
Int32 A hash code for this local date.
Overrides
System.ValueType.GetHashCode()

Max(LocalDate, LocalDate)

Returns the later date of the given two.
Since 2.3.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate Max(LocalDate x, LocalDate y)
Parameters
Type Name Description
LocalDate x The first date to compare.
LocalDate y The second date to compare.
Returns
Type Description
LocalDate The later date of x or y.
Sample snippet
using NodaTime;
using System;

LocalDate earlyJune = new LocalDate(2010, 6, 5);
LocalDate lateJune = new LocalDate(2010, 6, 25);
LocalDate max = LocalDate.Max(earlyJune, lateJune);
Console.WriteLine(max);

Output:

Friday, 25 June 2010

Exceptions
Type Condition
ArgumentException The two dates have different calendar systems.

Min(LocalDate, LocalDate)

Returns the earlier date of the given two.
Since 2.3.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate Min(LocalDate x, LocalDate y)
Parameters
Type Name Description
LocalDate x The first date to compare.
LocalDate y The second date to compare.
Returns
Type Description
LocalDate The earlier date of x or y.
Sample snippet
using NodaTime;
using System;

LocalDate earlyJune = new LocalDate(2010, 6, 5);
LocalDate lateJune = new LocalDate(2010, 6, 25);
LocalDate min = LocalDate.Min(earlyJune, lateJune);
Console.WriteLine(min);

Output:

Saturday, 05 June 2010

Exceptions
Type Condition
ArgumentException The two dates have different calendar systems.

Minus(LocalDate)

Subtracts the specified date from this date, returning the result as a Period with units of years, months and days. Fluent alternative to operator-().
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly Period Minus(LocalDate date)
Parameters
Type Name Description
LocalDate date The date to subtract from this
Returns
Type Description
Period The difference between the specified date and this one
Remarks
The specified date must be in the same calendar system as this.

Minus(Period)

Subtracts the specified period from this date. Fields are subtracted in descending order of significance (years first, then months, and so on). Fluent alternative to operator-().
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate Minus(Period period)
Parameters
Type Name Description
Period period The period to subtract. Must not contain any (non-zero) time units.
Returns
Type Description
LocalDate The result of subtracting the given period from this date.
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16).Minus(Period.FromDays(1));
Console.WriteLine(date);

Output:

Tuesday, 15 June 2010

Next(IsoDayOfWeek)

Returns the next LocalDate falling on the specified IsoDayOfWeek. This is a strict "next" - if this date on already falls on the target day of the week, the returned value will be a week later.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate Next(IsoDayOfWeek targetDayOfWeek)
Parameters
Type Name Description
IsoDayOfWeek targetDayOfWeek The ISO day of the week to return the next date of.
Returns
Type Description
LocalDate The next LocalDate falling on the specified day of the week.
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16);
LocalDate result = date.Next(IsoDayOfWeek.Thursday);
Console.WriteLine(result);

Output:

Thursday, 17 June 2010

Exceptions
Type Condition
System.InvalidOperationException The underlying calendar doesn't use ISO days of the week.
ArgumentOutOfRangeException targetDayOfWeek is not a valid day of the week (Monday to Sunday).

Plus(Period)

Adds the specified period to this date. Fields are added in descending order of significance (years first, then months, and so on). Fluent alternative to operator+().
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate Plus(Period period)
Parameters
Type Name Description
Period period The period to add. Must not contain any (non-zero) time units.
Returns
Type Description
LocalDate The sum of this date and the given period
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 1, 30).Plus(Period.FromMonths(1));
Console.WriteLine(date);

Output:

Sunday, 28 February 2010

PlusDays(Int32)

Returns a new LocalDate representing the current value with the given number of days added.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate PlusDays(int days)
Parameters
Type Name Description
Int32 days The number of days to add
Returns
Type Description
LocalDate The current value plus the given number of days.
Remarks

This method does not try to maintain the month or year of the current value, so adding 3 days to a value of January 30th will result in a value of February 2nd.

PlusMonths(Int32)

Returns a new LocalDate representing the current value with the given number of months added.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate PlusMonths(int months)
Parameters
Type Name Description
Int32 months The number of months to add
Returns
Type Description
LocalDate The current date plus the given number of months
Remarks

This method does not try to maintain the year of the current value, so adding four months to a value in October will result in a value in the following February.

If the resulting date is invalid, the day of month is reduced to find a valid value. For example, adding one month to January 30th 2011 will return February 28th 2011; subtracting one month from March 30th 2011 will return February 28th 2011.

PlusWeeks(Int32)

Returns a new LocalDate representing the current value with the given number of weeks added.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate PlusWeeks(int weeks)
Parameters
Type Name Description
Int32 weeks The number of weeks to add
Returns
Type Description
LocalDate The current value plus the given number of weeks.

PlusYears(Int32)

Returns a new LocalDate representing the current value with the given number of years added.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate PlusYears(int years)
Parameters
Type Name Description
Int32 years The number of years to add
Returns
Type Description
LocalDate The current value plus the given number of years.
Remarks
If the resulting date is invalid, lower fields (typically the day of month) are reduced to find a valid value. For example, adding one year to February 29th 2012 will return February 28th 2013; subtracting one year from February 29th 2012 will return February 28th 2011.

Previous(IsoDayOfWeek)

Returns the previous LocalDate falling on the specified IsoDayOfWeek. This is a strict "previous" - if this date on already falls on the target day of the week, the returned value will be a week earlier.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate Previous(IsoDayOfWeek targetDayOfWeek)
Parameters
Type Name Description
IsoDayOfWeek targetDayOfWeek The ISO day of the week to return the previous date of.
Returns
Type Description
LocalDate The previous LocalDate falling on the specified day of the week.
Exceptions
Type Condition
System.InvalidOperationException The underlying calendar doesn't use ISO days of the week.
ArgumentOutOfRangeException targetDayOfWeek is not a valid day of the week (Monday to Sunday).

Subtract(LocalDate, LocalDate)

Subtracts one date from another, returning the result as a Period with units of years, months and days.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public static Period Subtract(LocalDate lhs, LocalDate rhs)
Parameters
Type Name Description
LocalDate lhs The date to subtract from
LocalDate rhs The date to subtract
Returns
Type Description
Period The result of subtracting one date from another.
Remarks
This is simply a convenience method for calling Between(LocalDate, LocalDate). The calendar systems of the two dates must be the same.

Subtract(LocalDate, Period)

Subtracts the specified period from the date. Fields are subtracted in descending order of significance (years first, then months, and so on). Friendly alternative to operator-().
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate Subtract(LocalDate date, Period period)
Parameters
Type Name Description
LocalDate date The date to subtract the period from
Period period The period to subtract. Must not contain any (non-zero) time units.
Returns
Type Description
LocalDate The result of subtracting the given period from the date.
Sample snippet
using NodaTime;
using System;

LocalDate date = LocalDate.Subtract(new LocalDate(2010, 2, 28), Period.FromMonths(1));
Console.WriteLine(date);

Output:

Thursday, 28 January 2010

ToDateOnly()

Converts this value to an equivalent System.DateOnly.
Since 3.1.x
Availability net6.0
Declaration
public readonly DateOnly ToDateOnly()
Returns
Type Description
DateOnly A System.DateOnly value equivalent to this one.
Remarks
System.DateOnly uses the Gregorian calendar by definition, so the value is implicitly converted to the Gregorian calendar first. The result will be on the same physical day, but the values returned by the Year/Month/Day properties of the System.DateTime may not match the Year/Month/Day properties of this value.

ToDateTimeUnspecified()

Constructs a System.DateTime from this value which has a System.DateTime.Kind of System.DateTimeKind.Unspecified. The result is midnight on the day represented by this value.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly DateTime ToDateTimeUnspecified()
Returns
Type Description
DateTime A System.DateTime value for the same date and time as this value.
Remarks

System.DateTimeKind.Unspecified is slightly odd - it can be treated as UTC if you use System.DateTime.ToLocalTime or as system local time if you use System.DateTime.ToUniversalTime, but it's the only kind which allows you to construct a System.DateTimeOffset with an arbitrary offset, which makes it as close to the Noda Time non-system-specific "local" concept as exists in .NET.

System.DateTime uses the Gregorian calendar by definition, so the value is implicitly converted to the Gregorian calendar first. The result will be on the same physical day, but the values returned by the Year/Month/Day properties of the System.DateTime may not match the Year/Month/Day properties of this value.

ToString()

Returns a System.String that represents this instance.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public override readonly string ToString()
Returns
Type Description
String The value of the current instance in the default format pattern ("D"), using the current thread's culture to obtain a format provider.
Overrides
System.ValueType.ToString()

ToString(String, IFormatProvider)

Formats the value of the current instance using the specified pattern.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly string ToString(string patternText, IFormatProvider formatProvider)
Parameters
Type Name Description
String patternText The System.String specifying the pattern to use, or null to use the default format pattern ("D").
IFormatProvider formatProvider The System.IFormatProvider to use when formatting the value, or null to use the current thread's culture to obtain a format provider.
Returns
Type Description
String A System.String containing the value of the current instance in the specified format.

ToYearMonth()

Creates a YearMonth value for the month containing this date.
Since 3.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly YearMonth ToYearMonth()
Returns
Type Description
YearMonth A year/month value containing this date.
Sample snippet
using NodaTime;
using System;

YearMonth yearMonth = new LocalDate(2010, 6, 16).ToYearMonth();
Console.WriteLine(yearMonth);

Output:

2010-06

With(Func<LocalDate, LocalDate>)

Returns this date, with the given adjuster applied to it.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate With(Func<LocalDate, LocalDate> adjuster)
Parameters
Type Name Description
Func<LocalDate, LocalDate> adjuster The adjuster to apply.
Returns
Type Description
LocalDate The adjusted date.
Remarks
If the adjuster attempts to construct an invalid date (such as by trying to set a day-of-month of 30 in February), any exception thrown by that construction attempt will be propagated through this method.

WithCalendar(CalendarSystem)

Creates a new LocalDate representing the same physical date, but in a different calendar. The returned LocalDate is likely to have different field values to this one. For example, January 1st 1970 in the Gregorian calendar was December 19th 1969 in the Julian calendar.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public readonly LocalDate WithCalendar(CalendarSystem calendar)
Parameters
Type Name Description
CalendarSystem calendar The calendar system to convert this local date to.
Returns
Type Description
LocalDate The converted LocalDate

WithOffset(Offset)

Returns an OffsetDate for this local date with the given offset.
Since 2.3.x
Availability net6.0, netstandard2.0
Declaration
public readonly OffsetDate WithOffset(Offset offset)
Parameters
Type Name Description
Offset offset The offset to apply.
Returns
Type Description
OffsetDate The result of this date offset by the given amount.
Remarks
This method is purely a convenient alternative to calling the OffsetDate constructor directly.

Operators

Addition(LocalDate, LocalTime)

Combines the given LocalDate and LocalTime components into a single LocalDateTime.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDateTime operator +(LocalDate date, LocalTime time)
Parameters
Type Name Description
LocalDate date The date to add the time to
LocalTime time The time to add
Returns
Type Description
LocalDateTime The sum of the given date and time
Sample snippet
using NodaTime;
using System;

LocalDate date = new LocalDate(2010, 6, 16);
LocalTime time = new LocalTime(16, 20);
LocalDateTime dateTime = date + time;
Console.WriteLine(dateTime);

Output:

06/16/2010 16:20:00

Addition(LocalDate, Period)

Adds the specified period to the date. Fields are added in descending order of significance (years first, then months, and so on).
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate operator +(LocalDate date, Period period)
Parameters
Type Name Description
LocalDate date The date to add the period to
Period period The period to add. Must not contain any (non-zero) time units.
Returns
Type Description
LocalDate The sum of the given date and period

Equality(LocalDate, LocalDate)

Compares two LocalDate values for equality. See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static bool operator ==(LocalDate lhs, LocalDate rhs)
Parameters
Type Name Description
LocalDate lhs The first value to compare
LocalDate rhs The second value to compare
Returns
Type Description
Boolean True if the two dates are the same and in the same calendar; false otherwise

GreaterThan(LocalDate, LocalDate)

Compares two dates to see if the left one is strictly later than the right one. See the type documentation for a description of ordering semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static bool operator>(LocalDate lhs, LocalDate rhs)
Parameters
Type Name Description
LocalDate lhs First operand of the comparison
LocalDate rhs Second operand of the comparison
Returns
Type Description
Boolean true if the lhs is strictly later than rhs, false otherwise.
Exceptions
Type Condition
ArgumentException The calendar system of rhs is not the same as the calendar of lhs.

GreaterThanOrEqual(LocalDate, LocalDate)

Compares two dates to see if the left one is later than or equal to the right one. See the type documentation for a description of ordering semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static bool operator >=(LocalDate lhs, LocalDate rhs)
Parameters
Type Name Description
LocalDate lhs First operand of the comparison
LocalDate rhs Second operand of the comparison
Returns
Type Description
Boolean true if the lhs is later than or equal to rhs, false otherwise.
Exceptions
Type Condition
ArgumentException The calendar system of rhs is not the same as the calendar of lhs.

Inequality(LocalDate, LocalDate)

Compares two LocalDate values for inequality. See the type documentation for a description of equality semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static bool operator !=(LocalDate lhs, LocalDate rhs)
Parameters
Type Name Description
LocalDate lhs The first value to compare
LocalDate rhs The second value to compare
Returns
Type Description
Boolean False if the two dates are the same and in the same calendar; true otherwise

LessThan(LocalDate, LocalDate)

Compares two dates to see if the left one is strictly earlier than the right one. See the type documentation for a description of ordering semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static bool operator <(LocalDate lhs, LocalDate rhs)
Parameters
Type Name Description
LocalDate lhs First operand of the comparison
LocalDate rhs Second operand of the comparison
Returns
Type Description
Boolean true if the lhs is strictly earlier than rhs, false otherwise.
Exceptions
Type Condition
ArgumentException The calendar system of rhs is not the same as the calendar of lhs.

LessThanOrEqual(LocalDate, LocalDate)

Compares two dates to see if the left one is earlier than or equal to the right one. See the type documentation for a description of ordering semantics.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static bool operator <=(LocalDate lhs, LocalDate rhs)
Parameters
Type Name Description
LocalDate lhs First operand of the comparison
LocalDate rhs Second operand of the comparison
Returns
Type Description
Boolean true if the lhs is earlier than or equal to rhs, false otherwise.
Exceptions
Type Condition
ArgumentException The calendar system of rhs is not the same as the calendar of lhs.

Subtraction(LocalDate, LocalDate)

Subtracts one date from another, returning the result as a Period with units of years, months and days.
Since 2.0.x
Availability net6.0, netstandard2.0
Declaration
public static Period operator -(LocalDate lhs, LocalDate rhs)
Parameters
Type Name Description
LocalDate lhs The date to subtract from
LocalDate rhs The date to subtract
Returns
Type Description
Period The result of subtracting one date from another.
Remarks
This is simply a convenience operator for calling Between(LocalDate, LocalDate). The calendar systems of the two dates must be the same; an exception will be thrown otherwise.
Exceptions
Type Condition
ArgumentException lhs and rhs are not in the same calendar system.

Subtraction(LocalDate, Period)

Subtracts the specified period from the date. Fields are subtracted in descending order of significance (years first, then months, and so on). This is a convenience operator over the Minus(Period) method.
Since 1.0.x
Availability net6.0, netstandard2.0
Declaration
public static LocalDate operator -(LocalDate date, Period period)
Parameters
Type Name Description
LocalDate date The date to subtract the period from
Period period The period to subtract. Must not contain any (non-zero) time units.
Returns
Type Description
LocalDate The result of subtracting the given period from the date

Explicit Interface Implementations

IComparable.CompareTo(Object)

Implementation of System.IComparable.CompareTo(System.Object) to compare two LocalDates. See the type documentation for a description of ordering semantics.
Since 1.1.x
Availability net6.0, netstandard2.0
Declaration
readonly int IComparable.CompareTo(object obj)
Parameters
Type Name Description
Object obj The object to compare this value with.
Returns
Type Description
Int32 The result of comparing this LocalDate with another one. If obj is null, this method returns a value greater than 0.
Remarks
This uses explicit interface implementation to avoid it being called accidentally. The generic implementation should usually be preferred.
Exceptions
Type Condition
ArgumentException obj is non-null but does not refer to an instance of LocalDate, or refers to a date in a different calendar system.

IXmlSerializable.ReadXml(XmlReader)

Since 1.2.x
Availability net6.0, netstandard2.0
Declaration
readonly void IXmlSerializable.ReadXml(XmlReader reader)
Parameters
Type Name Description
XmlReader reader

IXmlSerializable.WriteXml(XmlWriter)

Since 1.2.x
Availability net6.0, netstandard2.0
Declaration
readonly void IXmlSerializable.WriteXml(XmlWriter writer)
Parameters
Type Name Description
XmlWriter writer

Implements

System.IEquatable<T>
System.IComparable<T>
System.IComparable
System.IFormattable
System.Xml.Serialization.IXmlSerializable
In this article
Back to top Generated by DocFX