디지털 시계 표시 않습니다 몇 초도 놓치지

디지털 시계 표시

(나는 많은 시계 도전이있는 것을 보았습니다. 나는 그들을 모두 읽으려고 노력했습니다. 이것이 독창적이라고 확신합니다)

계속 형식으로 표시되는 디지털 시계를 업데이트하는 코드 작성 h:m:sh, m그리고 s1 또는 2 개의 문자를 점유 할 수 있습니다. @BlueEyedBeast와 같은 간단한 용어로 제한 사항은 기본적으로 표시된 시간을 대체하기를 원합니다.

  • 개행은 허용되지 않습니다
  • 후행 공백이 허용됩니다
  • 다른 후행 문자는 허용되지 않습니다
  • 몇 초도 놓치지 않아야합니다 (57-> 59는 허용되지 않음).
  • “0”으로 시작하는 숫자는 2자를 초과하지 않는 한 허용됩니다.
  • 코드는 어떤 입력도받지 않아야합니다
  • 입력 한 언어가 현재 시간을 입력하지 못하면 표준 적으로 허용되는 방식으로 최대 8 바이트를 입력 할 수 있습니다.
  • 출력은 표준 출력이어야합니다
  • 이것은 codegolf이므로 최단 답변이 승리합니다!

이 프로그램은> <>에서 불가능하기 때문에 *> <> (불가사리)라는 언어로 작업하고 있습니다 (파일 i / o를 기다리십시오). 여기에 작동하는 디지털 시계 프로그램이 있습니다 (무용지물). 이 프로그램은 *> <>로 작성되었습니다 .

s":"m":"hnonon"   "ooo88888888888ooooooooooo1S

참고 : s = 초, m = 분, h = 시간, S = 절전 (100ms * x)을 제외하고 모든 것이> <>와 동일합니다.

이 결과는 다음과 같습니다.

14:44:31

종료 될 때까지 100ms마다 업데이트

허용되지 않는 예

다음은 허용되지 않습니다 :

1:

14:44:3114:44:32

2 :

14:44:31 14:44:32

삼:

14:44:31
14:44:32

보이는 후행 문자없이 출력 된 첫 번째 라인에 시간이 남아 있어야합니다. 그러나 터미널을 지우면 여전히 후행 문자가 없으므로 허용됩니다.



답변

파이크, 6 바이트

Ctr\ J

여기 사용해보십시오!

이것이 유효하다고 생각합니다. 유효한 출력을 위해 공백 문자를 캐리지 리턴으로 바꾸십시오 (온라인으로 작동하지 않음)


답변

HTML + JS (ES6), 8 + 60 = 68 바이트

Chrome에서 테스트되었습니다.

setInterval`a.innerHTML=new Date().toLocaleTimeString('fr')`
<a id=a>

-1 바이트 (@ETHProductions) : 대신 프랑스어 시간 형식을 사용하십시오. .toTimeString().slice(0,8)


HTML + JS (ES6), 8 + 62 = 70 바이트

이것은 FireFox에서 작동합니다.

setInterval('a.innerHTML=new Date().toLocaleTimeString`fr`',0)
<a id=a>

-3 바이트 (@ETHProductions) : 대신 프랑스어 시간 형식을 사용하십시오. .toTimeString().slice(0,8)


답변

파이썬 2, 50 바이트

( ctime인수가없는 Python 2.1 이상 )

import time
while 1:print'\r'+time.ctime()[11:19],

time.ctime()hh : mm : ss를 사용하여 슬라이스 할 수있는 형식화 된 문자열을 생성합니다 [11:19](날짜와 시간에 관계없이 동일한 위치에 유지됨).

print'\r'텍스트 앞에 캐리지 리턴 을 적용하고 텍스트를 튜플의 첫 번째 항목으로 설정 ,하면 암시 적 후행 을 효과적으로 억제 '\n'하고 이전에 작성된 출력을 덮어 씁니다.

while 1 영원히 반복됩니다.


답변

Mathematica, 48 41 37 28 바이트

Do[s=Now[[2]],∞]~Monitor~s

출력은 TimeObject계속 새로 고침됩니다.

다음과 같습니다 :

대체 버전

48 바이트 :

Dynamic@Refresh[TimeObject[],UpdateInterval->.1]

53 바이트 :

Dynamic@Refresh[DateString@"Time",UpdateInterval->.1]

답변

프로그램을 중지하기위한 비 신호 UI 입력에 대한 요구 사항이 제거되었음을 알 수 있습니다. 이제 우리는 할 수 있습니다 :

배쉬 + 코어 유틸리티, 28

yes now|date -f- +$'\e[2J'%T

yes 줄당 한 번씩 문자열 “now”를 파이프로 지속적으로 출력합니다.

date -f-읽기는 각 “지금”을 현재 시간으로 해석 한 다음 필요한 형식으로 출력합니다. 형식 문자열에는 화면을 지우는 ANSI 이스케이프 시퀀스가 ​​포함됩니다. date 않는 출력이 날짜 이후에 줄 바꿈 – 아니에요 확인하면 화면이 어쨌든 때마다 삭제되기 때문에이 자격을 상실.

자격이 상실되면 tr대신 사용할 수 있습니다 .

배쉬 + coreutils, 31

yes now|date -f- +%T|tr \\n \\r

이전 답변 :

배쉬 + X, 32

xclock -d -update 1 -strftime %T

불행히도 이것은 매 초마다 업데이트 할 수 있습니다. 자격이 상실되면 대신 다음과 같이 할 수 있습니다.

배쉬 + 코어 유틸리티, 43

until read -t0
do printf `date +%T`\\r
done

답변

QBIC , 6 바이트

{_C?_d

{      Starts a DO-loop
 _C    CLS
   ?   PRINT
    _d TIME$

화면을 계속 지우고 시스템 시간을 형식으로 인쇄합니다 22:03:41.


답변

Clojure에서, 150 (136) 141 바이트

V3 : 141 바이트 🙁

버그 수정을 위해 +5 바이트 시간이 0으로 채워지지 않으므로 시간이 변경되면 시계가 “축소”되고 확장 될 수 있습니다. 마지막 자리가 더 이상 지워지지 않았기 때문에 줄어든 때 “번짐”이었습니다. 모든 부분을 덮어 쓰도록 끝에 공백을 추가하여 수정했습니다.

#(while true(flush)(print(str(apply str(repeat 9"\b"))(.format(java.text.SimpleDateFormat."H:m:s")(java.util.Date.))"   "))(Thread/sleep 99))

V2 : 136 바이트

#(while true(flush)(print(str(apply str(repeat 9"\b"))(.format(java.text.SimpleDateFormat."H:m:s")(java.util.Date.))))(Thread/sleep 99))

-14 바이트를 사용 SimpleDateFormat하여 날짜 형식화 로 전환 합니다. 여전히 큽니다.

V1 : 150 바이트

#(while true(let[d(java.util.Date.)](flush)(print(str(apply str(repeat 9 "\b"))(.getHours d)":"(.getMinutes d)":"(.getSeconds d)))(Thread/sleep 100)))

나는 아마도 날짜를 얻는 데 최악의 방법을 사용하고 있음을 깨달았습니다. 확실히 개선의 여지가 있습니다.

언 골프 드 :

(defn -main []
  (while true
    (let [d (java.util.Date.)]
      (flush)
      (print
        (str
          (apply str (repeat 9 "\b"))
          (.getHours d)":"(.getMinutes d)":"(.getSeconds d)))
      (Thread/sleep 100))))