#include <GUIConstantsEx.au3>
#include <GuiDateTimePicker.au3>

$Debug_DTP = False ; Проверяет ClassName передаваемый в DTP функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

Global $iMemo, $aRange[14] = [True, @YEAR, 1, 1, 21, 45, 32, True, @YEAR, 12, 31, 23, 59, 59]

_Main()

Func _Main()
	Local $hDTP

	; Создаёт GUI
	GUICreate("Получает диапазон дат", 400, 300)
	$hDTP = GUICtrlGetHandle(GUICtrlCreateDate("", 2, 6, 190))
	$iMemo = GUICtrlCreateEdit("", 2, 32, 396, 266, 0)
	GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
	GUISetState()

	; Устанавливает формат строки
	_GUICtrlDTP_SetFormat($hDTP, "ddd MMM dd, yyyy hh:mm ttt")

	; Устанавливает диапазон дат
	_GUICtrlDTP_SetRange($hDTP, $aRange)

	; Отображает диапазон дат
	$aRange = _GUICtrlDTP_GetRange($hDTP)
	MemoWrite("Минимальная дата..: " & GetDateStr())
	MemoWrite("Максимальная дата.: " & GetDateStr(7))
	MemoWrite("Минимальная время.: " & GetTimeStr(4))
	MemoWrite("Максимальная время: " & GetTimeStr(11))

	; Цикл выполняется, пока окно не будет закрыто
	Do
	Until GUIGetMsg() = $GUI_EVENT_CLOSE
	GUIDelete()
EndFunc   ;==>_Main

; Возвращает элементы даты
Func GetDateStr($iOff = 0)
	Return StringFormat("%02d/%02d/%04d", $aRange[$iOff + 2], $aRange[$iOff + 3], $aRange[$iOff + 1])
EndFunc   ;==>GetDateStr

; Возвращает элементы времени
Func GetTimeStr($iOff = 0)
	Return StringFormat("%02d:%02d:%02d", $aRange[$iOff], $aRange[$iOff + 1], $aRange[$iOff + 2])
EndFunc   ;==>GetTimeStr

; Записывает строку в элемент для заметок
Func MemoWrite($sMessage)
	GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite