커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2019-03-22 12:12:52
379
글번호 127306
답변완료
안녕하세요? 유렉스 거래소 상품 거래시간을 표현하고 싶습니다. (유럽의 일광 절약 시간제는 3월 마지막 일요일에 시작하여 10월 마지막 일요일에 해제됩니다.) 아래는 작성주신 시카고거래소 상품 거래시간입니다. (미국의 일광 절약 시간제는 3월의 두 번째 일요일에 시작하여 11월 첫 일요일해제됩니다.) Var : st(0), et(0),year(0); var : V1(0),V2(0),v99(0); Year = Floor(sDate / 10000)*10000; V1 = Dayofweek((10000 * Year) + (100 * 3) + 1); If V1 == 0 Then Value2 = 8; Else Value2 = 15 - V1; // 3월 두번째 일요일 날짜 V2 = Dayofweek((10000 * Year) + (100 * 11) + 1); If V2 == 0 Then Value4 = 1; Else value4 = 8 - V2; // 11월 첫번째 일요일 날짜 If sdate > (10000 * Year) + (100 * 3) + value2 And sdate < (10000 * Year) + (100 * 11) + value4 Then Begin st = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; condition1 = (IntPortion(stime/10000) > IntPortion(et/10000) And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1];
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-03-22 15:33:07

안녕하세요 예스스탁입니다. Var : st(0), et(0),Year(0); var : cnt(0),M3(0),M10(0),SD(0),ED(0); Year = Floor(sDate / 10000)*10000; M3 = Year + (100 * 3); M10 = Year + (100 * 10); for cnt = 1 to 31 { if DayOfWeek(M3+cnt) == 0 Then { SD = M3+cnt; } if DayOfWeek(M10+cnt) == 0 Then { ED = M10+cnt; } } If sdate >= SD and sdate <= ED Then { st = 070000; et = 060000; } Else { st = 080000; et = 070000; } condition1 = (IntPortion(stime/10000) > IntPortion(et/10000) And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 유렉스 거래소 상품 거래시간을 표현하고 싶습니다. (유럽의 일광 절약 시간제는 3월 마지막 일요일에 시작하여 10월 마지막 일요일에 해제됩니다.) 아래는 작성주신 시카고거래소 상품 거래시간입니다. (미국의 일광 절약 시간제는 3월의 두 번째 일요일에 시작하여 11월 첫 일요일해제됩니다.) Var : st(0), et(0),year(0); var : V1(0),V2(0),v99(0); Year = Floor(sDate / 10000)*10000; V1 = Dayofweek((10000 * Year) + (100 * 3) + 1); If V1 == 0 Then Value2 = 8; Else Value2 = 15 - V1; // 3월 두번째 일요일 날짜 V2 = Dayofweek((10000 * Year) + (100 * 11) + 1); If V2 == 0 Then Value4 = 1; Else value4 = 8 - V2; // 11월 첫번째 일요일 날짜 If sdate > (10000 * Year) + (100 * 3) + value2 And sdate < (10000 * Year) + (100 * 11) + value4 Then Begin st = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; condition1 = (IntPortion(stime/10000) > IntPortion(et/10000) And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1];