Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
.NET Framework 3.5
System Namespace
DateTime Structure
DateTime Fields
 MaxValue Field

  Switch on low bandwidth view
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Class Library
DateTime..::.MaxValue Field

Updated: July 2008

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

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
Visual Basic (Declaration)
Public Shared ReadOnly MaxValue As DateTime
Visual Basic (Usage)
Dim value As DateTime

value = DateTime.MaxValue
C#
public static readonly DateTime MaxValue
Visual C++
public:
static initonly DateTime MaxValue
JScript
public static final var MaxValue : DateTime
ExceptionCondition
ArgumentOutOfRangeException

MaxValue is outside the range of the current culture's default calendar or of a specified culture's default calendar.

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 DateTime..::.MaxValue, you can retrieve the value of the specified culture's latest valid date value from the System.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime property.

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.

Visual Basic
' 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
   Throw New ArgumentOutOfRangeException("ticks", _
                   String.Format("{0} is less than {1} ticks.", _
                   numberOfTicks, _
                   Date.MinValue.Ticks))
Else                                                   
   Throw New ArgumentOutOfRangeException("ticks", _
                   String.Format("{0} is greater than {1} ticks.", _
                   numberOfTicks, _
                   Date.MaxValue.Ticks))

C#
// 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)
   throw new ArgumentOutOfRangeException("ticks", 
                   String.Format("{0} is less than {1} ticks.", 
                   numberOfTicks, 
                   DateTime.MinValue.Ticks));
else                                                   
   throw new ArgumentOutOfRangeException("ticks", 
                   String.Format("{0} is greater than {1} ticks.", 
                   numberOfTicks, 
                   DateTime.MaxValue.Ticks));

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

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

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0

Date

History

Reason

July 2008

Added an example.

Information enhancement.

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Does not actually throw an ArgumentOutOfRangeException      David M. Kean   |   Edit   |   Show History

The docs for this member are a little misleading; accessing this member does not throw an ArgumentOutOfRangeException. Rather, the attempt to format a DateTime that has a value outside the valid values for a particular calendar via an API such DateTime.ToString can cause an ArgumentOutOfRangeException.

Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker