2016-09-06 4 views
1

다음 코드를 고려하십시오ILE RPG - 시간 값을 숫자 값으로 변환하는 방법은 무엇입니까?

D#TIME1   S    T            
D#numeric1  S    6 0           
D#numeric2  S    6 0           
D                    
C     TIME     #numeric1       
C     eval  #TIME1 = %TIME(#numeric1:*HMS)      
C                    
C*     This does not work:            
C     eval  #numeric2 = %int(TIME1)       
C*     Errormessage: The expression contains a operator, which is not defined 
C                    
C     MOVE  *ON   *INLR    

사람은 ('07 같은 : 02 : 22 ') 나는 * HMS 시간 값을 변환 할 수있는 방법을 말해주십시오 수있는 6 0 숫자 값. 나는 두 개의 타임 스탬프를 비교하기 위해 이것을 필요로한다.

+0

참고는 할 필요없이 직접 시간 또는 타임 스탬프 값을 비교할 수 있습니다 그들을 변환하십시오. –

+0

방법? 'time_stmp1 IFGE time_stmp2'입니까? – Radinator

+2

두 타임 스탬프를 비교하려면 : IF time_stmp1> = time_stmp2 –

답변

5
C     eval  #numeric2 = %dec(TIME1: *hms) 

트릭을해야합니다.

+0

완벽! 감사합니다 : D – Radinator

+0

당신을 환영합니다 :-). 답변을 수락하십시오 : D –

+0

http://www.mysamplecode.com/2011/05/rpgle-convert-date-to-numeric-or.html –

1

TIME 연산 코드의 결과 필드에 시간 필드를 사용할 수 있습니다. 또는 현재 시간을 얻으려면 매개 변수없이 % TIME()을 사용할 수 있습니다.

D#TIME1   S    T 
D#curTime   S    T 

C     TIME     #curTime 
C     IF  #TIME1 >= #curTime 

또는 나중에 현재 시간을 필요로하지 않는 경우, 단지 직접 비교) %의 시간을 (사용

C     IF  #TIME1 >= %time() 
관련 문제