Author Archive

Автор: Николай Камынин

Учитывая, указанные ранее  ограничения, рассмотрим примеры функций из библиотеки автора:

БИБЛИОТЕКА ФУНКЦИЙ NK

Функции преобразования даты и времени:

FUNC DateTimeSesLoc() ‘определение даты сессии локального времени и текущей даты

MAP=GET_TRADE_DATE () ‘дата торговой сессии

Y_M_D1() ‘распаковка даты торговой сессии

DateTrade=DATE(YEAR,MONTH,DAY) ‘дата торговой сессии в формате YYYYMMDD

MAP=GET_DATETIME ()  ‘текущая дата и время

Y_M_D()  ‘распаковка текущей даты

DateLast=DATE(YEAR,MONTH,DAY) ‘дата в формате YYYYMMDD

H_M_S()  ‘распаковка текущего времени

T=0+TIME(HOUR,MIN,SEC‘текущее время в формате hhmmss

LOCALTIME=GET_INFO_PARAMLOCALTIME«)    ‘локальное время компьютера hh:mm:ss

Time_ID=0+HMS(LOCALTIME‘время hh:mm:ss в hhmmss будем использовать как код транзакции

‘—————

END FUNC

‘——————————

FUNC Y_M_D1()  ‘распаковка даты

YEAR=GET_VALUE(MAP, «YEAR»)

MONTH=GET_VALUE(MAP, «MONTH»)

DAY=GET_VALUE(MAP, «DAY»)

DW=GET_VALUE(MAP, «DAYOFWEEK»)

END FUNC

‘——————————

FUNC Y_M_D()  ‘распаковка текущей даты

Y_M_D1()  ‘распаковка даты

DW=GET_VALUE(MAP, «DAYOFWEEK«)

DD_MM_YYYY=GET_VALUE(MAP, «DATETIME»)

DateLastString=SUBSTR (DD_MM_YYYY, 6,4) & SUBSTR (DD_MM_YYYY, 3,2) & SUBSTR (DD_MM_YYYY,0,2) 

END FUNC

‘——————-

FUNC H_M_S()  ‘распаковка текущего времени

HOUR=GET_VALUE(MAP, «HOUR»)

MIN=GET_VALUE(MAP, «MIN»)

SEC=GET_VALUE(MAP, «SEC»)

‘MLS=GET_VALUE(MAP, «MILLISEC»)

END FUNC

‘——————-

FUNC HMS(LTime‘распаковка времени из формата hh:mm:ss в формат hhmmss

result=SUBSTR (LTime,0,2) & SUBSTR (LTime, 3,2) & SUBSTR (LTime, 6,2)

END FUNC

‘——————-

FUNC Y_M_D_H_M(LDat‘распаковка текущего времени

Y_M_D(LDat)  ‘распаковка текущей даты

H_M_S(LDat)  ‘распаковка текущего времени

END FUNC

‘——————-

FUNC DATE(YEAR,MONTH,DAY )  ‘дата в формате YYYYMMDD

  result=(YEAR*100+MONTH)*100+DAY

END FUNC

‘——————-

FUNC TIME(HOUR,MIN,SEC )      ‘время в формате hhmmss

 result=(HOUR*100+MIN)*100+SEC 

END FUNC

‘——————-

FUNC DecrTIME(HHMMSS,STEP )  ‘перевод назад на STEP минут, вывод hhmmss

HM1=FLOOR (HHMMSS/100)

H1=FLOOR (HM1/100)

M1=HM1-H1*100

S1=HHMMSS-100*(H1*100+M1)

S1=H1*3600+M1*60+S1- STEP*60

IF S1>0

result=SEC_TO_HHMMSS(S1)

ELSE

result=0

END IF

END FUNC

‘——————-

FUNC IncTIME(HHMMSS,STEP )  ‘перевод вперед на STEP минут, вывод hhmmss

HM1=FLOOR (HHMMSS/100)

H1=FLOOR (HM1/100)

M1=HM1-H1*100

S1=HHMMSS-100*(H1*100+M1)

S1=H1*3600+M1*60+S1+STEP*60

result=SEC_TO_HHMMSS(S1)

END FUNC

‘——————

FUNC SEC_TO_HHMMSS(TimeToSec)        ‘перевод из секунд в формат HHMMSS

TEMP=TimeToSec

H2=FLOOR (TEMP/3600)

MS2=TEMP-H2*3600

M2=FLOOR (MS2/60)

S2=MS2-60*M2

 result=(H2*100+M2)*100+S2 

END FUNC

‘————

FUNC HHMMSS_TO_MIN(HHMMSS)        ‘перевод времени из HMMSS в минуты

H2=FLOOR (HHMMSS/3600)

MS2=HHMMSS-H2*3600

M2=FLOOR (MS2/60)

 result=H2*60+M2 

END FUNC

 

Tags: ,