DateTime.MinValue Field
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents the smallest possible value of DateTime. This field is read-only.
public: static initonly DateTime MinValue;
public static readonly DateTime MinValue;
staticval mutable MinValue : DateTime
Public Shared ReadOnly MinValue As DateTime
Field Value
Examples
The following example instantiates a DateTime object by passing its constructor an Int64 value that represents a number of ticks. Before invoking the constructor, the example ensures that this value is greater than or equal to DateTime.MinValue.Ticks
and less than or equal to DateTime.MaxValue.Ticks
. If not, it throws an ArgumentOutOfRangeException.
// Attempt to assign an out-of-range value to a DateTime constructor.
long numberOfTicks = Int64.MaxValue;
DateTime validDate;
// Validate the value.
if (numberOfTicks >= DateTime.MinValue.Ticks &&
numberOfTicks <= DateTime.MaxValue.Ticks)
validDate = new DateTime(numberOfTicks);
else if (numberOfTicks < DateTime.MinValue.Ticks)
Console.WriteLine("{0:N0} is less than {1:N0} ticks.",
numberOfTicks,
DateTime.MinValue.Ticks);
else
Console.WriteLine("{0:N0} is greater than {1:N0} ticks.",
numberOfTicks,
DateTime.MaxValue.Ticks);
// The example displays the following output:
// 9,223,372,036,854,775,807 is greater than 3,155,378,975,999,999,999 ticks.
// Attempt to assign an out-of-range value to a DateTime constructor.
let numberOfTicks = Int64.MaxValue
// Validate the value.
if numberOfTicks >= DateTime.MinValue.Ticks &&
numberOfTicks <= DateTime.MaxValue.Ticks then
let validDate = DateTime numberOfTicks
()
elif numberOfTicks < DateTime.MinValue.Ticks then
printfn $"{numberOfTicks:N0} is less than {DateTime.MinValue.Ticks:N0} ticks."
else
printfn $"{numberOfTicks:N0} is greater than {DateTime.MaxValue.Ticks:N0} ticks."
// The example displays the following output:
// 9,223,372,036,854,775,807 is greater than 3,155,378,975,999,999,999 ticks.
' Attempt to assign an out-of-range value to a DateTime constructor.
Dim numberOfTicks As Long = Int64.MaxValue
Dim validDate As Date
' Validate the value.
If numberOfTicks >= Date.MinValue.Ticks And _
numberOfTicks <= Date.MaxValue.Ticks Then
validDate = New Date(numberOfTicks)
ElseIf numberOfTicks < Date.MinValue.Ticks Then
Console.WriteLine("{0:N0} is less than {1:N0} ticks.",
numberOfTicks,
DateTime.MinValue.Ticks)
Else
Console.WriteLine("{0:N0} is greater than {1:N0} ticks.",
numberOfTicks,
DateTime.MaxValue.Ticks)
End If
' The example displays the following output:
' 9,223,372,036,854,775,807 is greater than 3,155,378,975,999,999,999 ticks.
Remarks
The value of this constant is equivalent to 00:00:00.0000000 UTC, January 1, 0001, in the Gregorian calendar.
MinValue defines the date and time that is assigned to an uninitialized DateTime variable. The following example illustrates this.
// Define an uninitialized date.
DateTime date1 = new DateTime();
Console.Write(date1);
if (date1.Equals(DateTime.MinValue))
Console.WriteLine(" (Equals Date.MinValue)");
// The example displays the following output:
// 1/1/0001 12:00:00 AM (Equals Date.MinValue)
// Define an uninitialized date.
let date1 = DateTime()
printf $"{date1}"
if date1.Equals DateTime.MinValue then
printfn $" (Equals Date.MinValue)"
// The example displays the following output:
// 1/1/0001 12:00:00 AM (Equals Date.MinValue)
' Define an uninitialized date.
Dim date1 As Date
Console.Write(date1)
If date1.Equals(Date.MinValue) Then _
Console.WriteLine(" (Equals Date.MinValue)")
' The example displays the following output:
' 1/1/0001 12:00:00 AM (Equals Date.MinValue)
The MinValue and MaxValue properties can be used to ensure that a value lies within the supported range before passing it to a DateTime constructor. The code in the Example section illustrates this usage.