군사 시간 형식(hhmm)을 시간 형식(hh:mm)으로 변환<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />군사 시간을 hhmm 형식(예: 1432 또는 725)에서 hh:mm 형식(예: 14:32에서 7:25)으로 변환해야 합니다. 변환할 수 있는 간단한 공식이 있습니까, 아니면 스크립트를 사용해야 합니까?감사해요.
Re: 군사 시간 형식(hhhh)을 시간 형식(hh:mm)으로 변환효과가있다! 매우 감사합니다. 제안해주신 공식들을 보고 정말 많이 배웠습니다!Re: 군사 시간 형식(hhhh)을 시간 형식(hh:mm)으로 변환첫 번째 질문은 입력 시간 값의 길이가 4자 미만인 경우 군시 왼쪽에 누락된 0이 있다고 가정해야 합니까?이 경우 아래 솔루션을 제안합니다. 선행 0으로 값을 채운 다음 변환을 수행합니다.
standard = Substr( "00", Length( Char( :Military ) ) - 1 ) ||
Char( :Military );
Num( Substr( Char( :standard ), -2 ) ) * 60
+Num(
Substr(
Char( :standard ),
1,
(Length( Char( :standard ) ) - 2)
)
) * 3600;
Re: 군사 시간 형식(hhhh)을 시간 형식(hh:mm)으로 변환이 코드를 사용하여 문자열을 시간 형식(hh:mm)으로 변환하려고 했습니다.
Num( Substr( Char( :군사 ), -2 ) ) * 60 + Num(
Substr( Char( :Military ), 1, (Length( Char( :Military ) ) - 2) )
) * 3600
그러나 문자열이 2자리만 있으면 변환되지 않는다는 것을 깨달았습니다. 예를 들어 26이면 오전 12시 26분으로 변환되지 않습니다. 그러나 3자리 문자열은 정상적으로 작동합니다(100은 오전 1시가 됨).
어때요?Re: 군사 시간 형식(hhhh)을 시간 형식(hh:mm)으로 변환코드를 새 필드의 수식 섹션에 게시하고 필드를 내 데이터 세트 열 이름으로 변경했는데 완벽하게 작동합니다!
Num( Substr( Char( :Military ), -2 ) ) * 60 + Num(
Substr( Char( :Military ), 1, (Length( Char( :Military ) ) - 2) )
) * 3600
매우 감사합니다!
Re: 군사 시간 형식(hhhh)을 시간 형식(hh:mm)으로 변환안녕 짐,
이 스크립트를 어떻게 사용합니까? 변경해야 하는 변수는 무엇입니까?
그런 다음 데이터 세트의 이름은 "transaction_data"이고 군사 시간이 있는 열의 이름은 "DAY"(transaction_data:DAY)입니다.
그렇다면 이 두 변수를 스크립트로 대체하고 실행하려면 어떻게 해야 합니까?
멍청한 질문에 대해 죄송합니다.
Re: 군사 시간 형식(hhhh)을 시간 형식(hh:mm)으로 변환군복무에서 정규병으로 전환하는 것은 어떻습니까?
Re: 군사 시간 형식(hhhh)을 시간 형식(hh:mm)으로 변환문자열을 완전히 피하는 또 다른 접근 방식:
dt << New Column( "time",
Numeric,
"Continuous",
Format( "hr:m", 12 ),
Formula( Floor( :Military / 100 ) * 3600 + Mod( :Military, 100 ) * 60 )
);
Re: 군사 시간 형식(hhmm)을 시간 형식(hh:mm)으로 변환Jim, 귀하의 솔루션은 완벽하게 작동했습니다. 나는 모든 것이 숫자 형식으로 유지되는 방식을 좋아합니다. 매우 감사합니다!
Re: 군사 시간 형식(hhmm)을 시간 형식(hh:mm)으로 변환바이런, 지도해 주셔서 대단히 감사합니다.귀하가 제안한 방법이 작동합니다. 그러나 변수를 문자 상태로 유지합니다.
향후 특수한 경우를 위해 스크립트를 저장했습니다!
Re: 군사 시간 형식(hhhh)을 시간 형식(hh:mm)으로 변환Bryon이 보여주고 있는 것과 동일한 작업을 수행하는 다른 방법이 있습니다.내 버전은 입력되는 문자 값을 생성하는 대신 숫자 시간 값으로 직접 이동합니다.
여기에 기본 이름 ( 1 ) ;
// 약간의 군사 시간이 포함된 샘플 데이터 테이블을 생성합니다.....
// 열은 숫자 또는 문자일 수 있습니다. 변환
// 수식은 둘 다 처리합니다.
dt = 새 테이블 ( "무제 3" , 행 추가 ( 2 ) , 새 열 ( "군대" , 숫자 , "마디 없는" , 체재 ( "최상의" , 12 ) , 값 설정 ( [ 1421년 , 923 ] ) ) ) ;
// wait() 함수는 드라마틱한 효과를 추가하기 위해 존재합니다 
기다리다 ( 2 ) ;
// 변환된 시간을 보관할 새 열을 추가합니다.
// 변환이 생성되므로 시간 형식을 사용합니다.
// 자정 이후의 초 수 값
dt << 새 열 ( "시간" , 숫자 , "마디 없는" , 체재 ( "시간:분" , 12 ) ) ;
기다리다 ( 2 ) ;
// 모든 행에서 실행하고 변환을 수행합니다.
// 수식은 제거만 하면 열 수식으로 작동합니다.
// ":시간="
각 행에 대해 (
: 시간 = 숫자 ( Substr ( 숯 ( : 군대 ) , - 2 ) ) * 60 +
숫자 ( Substr ( 숯 ( : 군대 ) , 1 , ( 길이 ( 숯 ( : 군대 ) ) - 2 ) ) ) * 3600
) ;
Re: 군사 시간 형식(hhhh)을 시간 형식(hh:mm)으로 변환더 간단한 방법이 있을 수 있습니다. 그러나 이것은 꽤 잘 작동합니다.
1 단계
반복( "0", 4 - 길이( Char( :Start ) ) ) || 문자( :시작 )
시작 번호를 0으로 채워진 4자리 문자로 만듭니다(우편 번호에도 유용함).
2 단계
왼쪽( :1단계, 2단계) || ":" || 오른쪽( :1, 2단계)
시간과 분 사이에 콜론을 삽입합니다.
3단계
형식( Informat( :Char 24시간 시간, "h:m" ), "h:m" )
이 수식은 문자 24시간을 가져와 자정 이후의 초 수로 변환한 다음 초를 12시간으로 변환합니다.
Informat은 문자열을 평가하고 숫자를 반환합니다.
형식은 숫자 문자열을 평가하고 문자를 반환합니다.
| 시작 |
1 단계 |
2 단계 |
3단계 |
| 삼 |
0003 |
00:03 |
오전 12:03 |
| 30 |
0030 |
00:30 |
오전 12:30 |
| 1130 |
1130 |
11:30 |
오전 11시 30분 |
| 1830년 |
1830년 |
18:30 |
오후 6시 30분 |
.......
또는 하나의 수식으로 하나의 "간단한" 단계로 모든 작업을 수행할 수 있습니다.
Format(
Informat(
Left( Repeat( "0", 4 - Length( Char( :Start ) ) ) || Char( :Start ), 2 ) || ":" ||
Right( Repeat( "0", 4 - Length( Char( :Start ) ) ) || Char( :Start ), 2 ),
"h:m"
),
"h:m"
);
특별한 경우를 위해 재활용되는 치열한 공식 모음을 보관합니다.