PHP- 115102 바이트
155 바이트의 솔루션 (가독성을 위해 3 줄로 줄 바꿈) :
$a=$argv[1];
$h=($a-($m=($a=($a-($s=($a=($a-($t=($a=($a-($u=$a%1000))/1000)%1000))/1000)%60))/60)%60))/60;
printf("%02d:%02d:%02d:%03d:%03d",$h,$m,$s,$t,$u);
두 번째 줄은 내부에서 외부로 마이크로 초로 시작하는 구성 요소의 정확한 값을 계산합니다.
더 짧은 버전 (115 바이트, 가독성을 위해 두 줄로 줄 바꿈) :
$u=$argv[1];$h=($m=($s=($t=$u/1000)/1000)/60)/60;
printf("%02d:%02d:%02d:%03d:%03d",$h,$m%60,$s%60,$t%1000,$u%1000);
또한 임베디드 대입을 사용하여 부동 소수점 숫자를 사용하여 밀리 초, 초, 분 및 시간 단위의 입력 마이크로 초 변환을 계산합니다. 그런 다음 모듈러스 연산자 ( %
)와 10 진수 형식 ( %d
) printf()
을 사용하여 정수로 강제합니다 (소수 부분은 무시 됨).
날짜 함수 (102 바이트)를 사용하는 다른 솔루션
$u=$argv[1];
echo gmdate("H:i:s",strtotime("@".substr($u,0,-6))),":",substr($u,-6,3),":",substr($u,-3);
시간 : 분 : 초 부분은 PHP 일 함수에 의해 처리 gmdate()
및 strtotime()
상기 마이크로 밀리 초 입력 값의 문자열로 추출된다.
용법:
$ php -r '$u=$argv[1];echo gmdate("H:i:s",strtotime("@".substr($u,0,-6))),":",substr($u,-6,3),":",substr($u,-3);' 7198898787; echo
01:59:58:898:787
hh:mm:ss.000000
아마도 더 좋았을 것입니다. 그래도 지금은 갈 수 없습니다.