Поделиться через


DateTime.MaxValue Поле

Определение

Представляет наибольшее возможное значение типа DateTime. Это поле доступно только для чтения.

public: static initonly DateTime MaxValue;
public static readonly DateTime MaxValue;
 staticval mutable MaxValue : DateTime
Public Shared ReadOnly MaxValue As DateTime 

Значение поля

Примеры

В следующем примере создается экземпляр объекта путем DateTime передачи его конструктору Int64 значения, представляющего несколько тактов. Перед вызовом конструктора в примере гарантируется, что это значение больше или равно DateTime.MinValue.Ticks и меньше или равно DateTime.MaxValue.Ticks. В противном случае создается исключение 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.

Комментарии

Значение этой константы эквивалентно 23:59:59.9999999 UTC, 31 декабря 9999 года в григорианском календаре, ровно один 100-наносекундный галочку до 00:00:00 UTC, 1 января 10000 г.

Некоторые календари, например ThaiBuddhistCalendar, поддерживают верхний диапазон дат, предшествующий MaxValue. В таких случаях попытка получить доступ MaxValue в операциях присваивания переменных или операций форматирования и синтаксического анализа может вызвать исключение ArgumentOutOfRangeException. Вместо получения значения можно получить значение последней допустимой DateTime.MaxValueдаты указанного языка и региональных параметров из Calendar.MaxSupportedDateTime свойства .

Применяется к

См. также раздел