.NET Framework Class Library
DateTimeMaxValue Field

Represents the largest possible value of DateTime. This field is read-only.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)
Syntax
Public Shared ReadOnly MaxValue As [%$TOPIC/099wkxae_en-us_VS_110_2_0_0_0_0%]
public static readonly [%$TOPIC/099wkxae_en-us_VS_110_2_0_1_0_0%] MaxValue
public:
static initonly [%$TOPIC/099wkxae_en-us_VS_110_2_0_2_0_0%] MaxValue
static val MaxValue: [%$TOPIC/099wkxae_en-us_VS_110_2_0_3_0_0%]
Remarks

The value of this constant is equivalent to 23:59:59.9999999, December 31, 9999, exactly one 100-nanosecond tick before 00:00:00, January 1, 10000.

Some calendars, such as the UmAlQuraCalendar, support an upper date range that is earlier than MaxValue. In these cases, trying to access MaxValue in variable assignments or formatting and parsing operations can throw an ArgumentOutOfRangeException. Rather than retrieving the value of DateTimeMaxValue, you can retrieve the value of the specified culture's latest valid date value from the System.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime property.

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. 
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.      
// 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.
Version Information

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1
Platforms

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.