레겐… 기다려라… 관련이없는 이벤트에서는

고마워!

다음 며칠 동안 나에게 일어날 일과 전혀 관련이없는 이벤트에서는 다음을 수행하는 코드를 작성해야합니다.

  1. 인쇄

    Legen... wait for it...
    

    후행 줄 바꿈과 함께 즉시.

  2. 다음 1 시간 동안 기다립니다 (배지 부여를위한 크론 작업이 실행될 때).

  3. 인쇄

    dary!
    

    옵션 후행 줄 바꿈.

추가 규칙

  • 프로그램이나 함수를 작성할 수 있지만 출력은 STDOUT (또는 사용자 언어의 가장 가까운 대안)으로 인쇄되어야합니다.

  • 60 분이 아니라 다음 전체 시간 까지 기다려야합니다 . 코드가 6:58에 실행되면 두 번째 줄은 7시에 인쇄해야합니다.

  • 마지막 라인은 다음 전체 시간 후 1 초 이내에 인쇄되어야합니다.

  • 전체 시간의 첫 번째 초에 프로그램이 시작된 경우 다음 전체 시간을 기다려야합니다.

  • 현지 시간이나 UTC 시간을 쿼리 할 수 ​​있습니다.

  • 표준 규칙이 적용됩니다.



답변

피스, 42 41

J.d6." wâ«­hÖ`Ùá©h´^"WqJ.d6;"dary!

아래는 코드의 16 진 덤프입니다.

00000000  4a 2e 64 36 2e 22 20 77  0c 10 89 e2 ab 1b ad 68  |J.d6." w.......h|
00000010  0f 8c d6 60 d9 e1 a9 68  82 b4 5e 22 57 71 4a 2e  |...`...h..^"WqJ.|
00000020  64 36 3b 22 64 61 72 79  21                       |d6;"dary!|

@isaacg 덕분에 1 바이트 절약

.d함수를 사용하여 현지 시간 관련 값을 가져옵니다. .d6현재 시간을 반환합니다. 첫 번째 문자열을 인쇄 한 다음 프로그램 시작 시간과 시간이 다를 때까지 기다렸다가 두 번째 문자열을 인쇄합니다.

온라인으로 .d7또는 .d8몇 분 / 초 동안 온라인으로 시도 할 수 있지만 온라인 컴파일러는 프로그램이 종료 될 때만 인쇄합니다.

축하합니다, 데니스! 🙂


답변

자바 스크립트 (ES6), 74 바이트

테스트하기 전에 시스템 시계를 변경하고 59 분 전에 여기에 착륙 한 경우 축하합니다.

setTimeout(a=alert,36e5-new Date%36e5,"dary!");a`Legen... wait for it...
`

답변

CJam, 49 48 바이트

et3="Legen... wait for it...
"o{_et3==}g;"dary!"

현지 시간을 사용합니다. 테스트 목적으로 두 인스턴스를 다음 3으로 교체 4하거나 5다음 분 / 초가 시작될 때 인쇄되도록 할 수 있습니다.

여기에서 테스트하십시오. 그러나 온라인 인터프리터는 프로그램이 종료 될 때까지 출력을 표시하지 않습니다. 또는 Try it online 에서 출력을 버퍼링 대신 거의 즉시 표시 할 수 있습니다 (시간 대신 초 단위로 테스트하면 지연이 눈에 띄게 나타남). 어쨌든 Java 인터프리터를 사용하여 로컬로 실행하면 매력처럼 작동합니다.

설명

이것은 CJam을 사용 et하여

[year month day hour minute second ms weekday utc_offset]

코드는 다음과 같습니다.

et3=       e# Get the current hour.
"Legen..." e# Push the first string including the linefeed.
o          e# Print it.
{          e# While the top of stack is truthy (which is popped)...
  _        e#   Copy the original hour.
  et3=     e#   Get the current hour.
  =        e#   Check for equality.
}g
;          e# Discard the original hour.
"dary!"    e# Push the second string which is printed automatically.

보너스

이것은 동일한 바이트 수에서도 작동합니다.

et4<"Legen... wait for it...
"o{et1$#!}g;"dary!"

시간을 선택하는 대신 날짜 시간으로 접두사를 선택 하고 datetime 배열에 여전히 접두사가있는 동안 루프를 계속 유지합니다.


답변

애플 스크립트, 157 149 바이트

허. 놀랍게도 논쟁.

(현재 날짜)의 시간 문자열에서 d를 1로 설정
log "Legen ... 잠시만 기다려주세요 ..."
(현재 날짜)의 시간 문자열에서 d = 숫자 1 동안 반복
종료
로그 "건조!"

log스크립트 편집기의 메시지 분할 창에 인쇄 되므로 STDOUT에 가장 가까운 출력이라고 생각합니다. 기본적으로 현재 날짜의 시간 문자열을 얻으면 다음과 같이됩니다.

암호:

(현재 날짜)의 시간 문자열

산출:

오후 5:02:03

5콜론 앞의 첫 번째 숫자 ( )를 가져옵니다.

실제로 이보다 훨씬 길다고 생각했습니다. xD


답변

눈사람 1.0.2 , 70 69 바이트

~"Legen... wait for it...
"sP3600000*vt#nDnC!*:vt+#nD!#nL;bD"dary!"sP

설명:

~              Make all variables active.
"..."sP        Print the first string.
3600000*vt#nD  Get the number of hours since the Unix epoch.
nC             Ceiling (round up), giving the time (divided by 36000) at which to
                 print the second string.
!*             Save that in a permavar.
:...;bD        Do the stuff in the block while its "return value" is truthy.
  vt+#nD       Again, get the number of hours since epoch.
  !#             Store the permavar that we saved earlier.
  nL             Is the current time less than the target time? (if so,
                   keep looping)
"..."sP        Print the second string.

답변

PHP, 76, 70, 65, 62 51 바이트

Legen... wait for it...
<?while(+date(is));?>dary!

이전 논리 (63b) :

Legen... wait for it...
<?for($h=date(G);date(G)==$h;)?>dary!

이런 종류의 코딩은 작업을 느슨하게하지만 시간이 init보다 1 시간 더 길어질 때까지 반복됩니다.

-1 대체하여 바이트 {}로하면서 Afer 즉 ;(감사 manatwork)
-5 바이트를 대체하여 echo'dary!';?>dary!(감사 manatwork)
-4 바이트를 대체하여 <?php짧은 버전 <?(감사 프리모)
-1 바이트를 대체하여 whileA에 대한 for
대체함으로써 -3 바이트 date(G)!=$h+1까지 date(G)==$h(감사 프리모)


답변

펄 6 , 60 바이트

sleep 60²-now%60²+say 'Legen... wait for it..';say 'dary!'