Шаг 26 - Win32Api. Вызываем GetSystemTime()

Мы уже рассматривали работу с датой в шагах "Шаг 13 - Формат даты" и "Шаг 14 - Операции с датой". Но дату, а также время можно получить, используя API.

*typedef struct _SYSTEMTIME { 
*    WORD wYear; 
*    WORD wMonth; 
*    WORD wDayOfWeek; 
*    WORD wDay; 
*    WORD wHour; 
*    WORD wMinute; 
*    WORD wSecond; 
*    WORD wMilliseconds; 
*} SYSTEMTIME; 

declare integer GetSystemTime in win32api string @
cBuff = space(40)
GetSystemTime(@cBuff)
	wYear = GetByteValue(cBuff, 2)
	wMonth = GetByteValue(cBuff, 4)
	wDayOfWeek = GetByteValue(cBuff, 6)
	wDay = GetByteValue(cBuff, 8)
	wHour = GetByteValue(cBuff, 10)
	wMinute = GetByteValue(cBuff, 12)
	wSecond = GetByteValue(cBuff, 14)
	wMilliseconds = GetByteValue(cBuff, 16)
clear dlls

set date german
set century on
* Выводим дату
dToday =  ctod(alltrim(str(wDay)) + '.' + alltrim(str(wMonth));
	+ '.' + alltrim(str(wYear)))
? dToday
* Выводим время
tTime = alltrim(str(wHour)) + ':' + alltrim(str(wMinute)) +;
	':' + alltrim(str(wSecond))
? tTime

procedure GetByteValue()
parameters cBuff, nPos
	return asc(substr(cBuff, nPos)) * 256 + asc(substr(cBuff, nPos - 1))
endproc

Вот и все, можно запускать.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Клементьев В.А - 06.08.2002