レゲン…待って…


68

うん!

数日中に私何が起こるのかとまったく関係のないイベントでは、次のことを行うコードを作成する必要があります。

  1. 印刷する

    Legen... wait for it...
    

    すぐに、末尾に改行が付きます。

  2. 次の1時間(バッジを授与するためのcronジョブが実行されるとき)まで待ちます。

  3. 印刷する

    dary!
    

    オプションの改行。

追加のルール

  • プログラムまたは関数を作成できますが、出力はSTDOUT(または言語の最も近い代替)に出力する必要があります。

  • あなたは、次まで待つ必要がフルだけでなく、60分間、時間。コードが6:58に実行される場合、7:00に2行目を印刷する必要があります。

  • 最後の行は、次の1時間の1秒以内に印刷する必要があります。

  • プログラムが1時間の最初の1秒間に開始された場合は、次の1時間待つ必要があります。

  • 現地時間またはUTC時間を照会できます。

  • 標準の規則が適用されます。


1
私は、第三の追加ルールは、「次のフル時間まで待つ」の基本とどのように異なるかを理解していない
Fatalize

2
@Fatalizeこれは、分と秒が両方とも00になるまでではなく、時間が変わるまで待たなければならないことの明確化です。
デニス

25
ハッピーレジェンダリーバッジ、@ Dennis!
クリティキシリソス

36
@ΚριτικσιΛίθοςありがとう!(タブ補完に感謝します。)
デニス

2
「オンザアワー」は、あなたが「次のフルアワー」と呼ぶもの(少なくともアメリカ英語では)を記述するためのより標準的な(そしてもっと明確な方法だと思います)。
jpmc26

回答:


12

Pyth、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現在の時間を返します。これにより、最初の文字列が出力され、その後、時間がプログラムの開始時間と異なるまで待機してから、2番目の文字列が出力されます。

数分/秒で、.d7または.d8数分/秒でオンラインで試すことができますが、オンラインコンパイラはプログラムの終了時にのみ何でも印刷します。

おめでとう、デニス!:)


この文字列は、packed-strを使用して1バイト圧縮できます。Hexdump:0000000: 2e22 2077 0c10 89e2 ab1b ad68 0f8c d660 ." w.......h...` 0000010: d9e1 a968 82b4 5e22 0a ...h..^".
isaacg

@isaacgおっと、私はそれをチェックしましたが、カウントを台無しにしたに違いありません。私はそれが1バイトしか圧縮しないと思ったので、余分な.ものは同じ長さになります。愚かなオフ
バイワン

これが何をするのかを理解しようとしただけで(まったく経験がなかったので)私は笑いました。なるほどdary、でもないlegen!そしてpythは...従来のプログラミングに使用されるもので理解しやすくなると主張する
Cyoce

@Cyoce編集履歴を見ると、読みやすいバージョンを見つけることができます。."文字列は、実際の文字列を取得することで実行いくつかの操作を持っている必要があることを示します。これは、ゴルフのコンプレッショントリックにすぎません。Pythを学ぼうと決心したら、幸運を祈ります!チャットルームも忘れないでください:)
FryAmTheEggman

26

JavaScript(ES6)、74バイト

テストの前にシステムクロックを変更したい場合があります。59分前にここに着いた場合はおめでとうございます。

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


11
36e5の代わりに働きますか3.6e6
ETHproductions

8
@ETHproductionsあなたの美しさ!
ジョージリース

3
@ETHproductionsそれはいくつかの悪い科学表記法です。私はそれがJavascriptで動作することを知りませんでした。今日何かを学んだ!!!
イスマエルミゲル

2
@Optimizerああは知らなかったsetTimeoutでしょうがeval、私のため。本当です...私はもともと使用しようとしてconsole.logいましたが、コンテキストのために変数に格納されている場合でも動作しません。あなたも美しい!
ジョージリース

1
setTimeout適切に使用し、1バイトを保存することもできますalert`Legen…`;setTimeout(alert,36e5-new Date%36e5,"dary!")
。– Bergi

9

CJam、49 48バイト

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

現地時間を使用します。テスト目的のために、あなたは、の2つのインスタンス置き換えることができる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配列にそのプレフィックスが残っている間、ループを続けます。


9

AppleScript、157 149バイト

ほら 驚くほど対立します。

(現在の日付)の時間文字列でdを1に設定します
ログ「Legen ... wait it it ...」
(現在の日付)の時間文字列でd = number 1の間に繰り返す
終わり
ログ「dary!」

以来logスクリプトエディタの[メッセージ]ウィンドウに印刷し、私はそれをSTDOUTに最も近い出力であると考えています。基本的に、現在の日付の時刻文字列を取得すると、次のようになります。

コード:

(現在の日付)の時間文字列

出力:

午後5:02:03

5コロンの前の最初の数字()を取得します。

実際にはこれよりもずっと長いと思いました。xD


では、03:03:00に実行するとどうなりますか?
ブラックライトシャイニング

@BlacklightShiningこれは、先頭に番号3を取得し、4になるまで待機します。コロンの前の数字のみを認識します。
アディソンクランプ

ああ、私はそれを見逃した。はい。奇妙なことに、私は実際には取得しています"1"からnumber 1 in time string of(current date)...
ブラックライトシャイニング・

@BlacklightShining古いバージョンを使用している可能性があります-El Capitanでは、これはと同等first number in time string of (current date)です。
アディソンクランプ

ヨセミテにいるよ first numberまた、時間の最初の1桁("0"現在、04:38)だけが表示されます。
ブラックライトシャイニング

8

雪だるま1.0.270の 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.

7

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バイトを置き換えることによってwhileためにfor
置き換えることによって-3バイトdate(G)!=$h+1date(G)==$h(primoに感謝)


良いものですが、{};echo?>は少し減らすでしょう。私が好むがLegen... wait for it...↵<?php while(+date('is'));?>dary!
マナトワーク

1
いくつかのヒント:短いオープンタグを使用できます(<?ではなく<?php)。を使用するfor(;;)と、と同じ長さwhile()になります$hが、セミコロン(for($h=date(h);...)を必要とせずに割り当てを移動できます。{}必要はありませんでしたが、どちらもある;、先行します?>$hただし、12に問題がある可能性があります(date(h)13になることはありません)。
プリモ

両方ありがとう、それに応じて私の答えを更新しました。それは明らか笑を示しているのでイムは、私は今日、重要な仕事をするはずの推測、あまりにもよく感じていない
マルタイン

2
に変更date(G)!=$h+1date(G)==$hます。より短く、時間の問題を解決します;)また、前にセミコロンを削除し?>ます。
プリモ

1
@manatworkでは、コードがで実行されたHH:00:00場合、つまり1時間の最初の1秒以内に待機することに失敗します。
プリモ


5

Javascript 94 90 87バイト

それほどゴルフをしていません...

alert`Legen... wait for it...`,l=l=>~~(Date.now()/36e5);for(z=l();z==l(););alert`dary!`

Downgoatのバージョン:

(a=alert)`Legen... wait for it...`,z=(b=new Date().getHours)();for(;z==b(););a`dary!`

現在の時間を保存し、「古い」時間が現在の時間と等しい限りループします。時間が変更されるとすぐに、残りが印刷されます!:D

免責事項:お使いのブラウザがそれを嫌う場合、警告されています。


2
87バイト:(a=alert)`Legen... wait for it...`,l=new Date,z=(b=l.getHours)();for(;z==b(););a`dary!`
Downgoat

@Downgoatありがとう!(私は今それをゴルフしようとしています。)
Stefnotch

1
さらに短く(85バイト):(a=alert)`Legen... wait for it...`,z=(b=new Date().getHours)();for(;z==b(););a`dary!`
15年

2
@Downgoat 1バイト短縮:for((a=alert)`Legen... wait for it...`,z=(b=new Date().getHours)();z==b(););a`dary!`
イスマエルミゲル

4

MATLAB-89バイト

a=@()hour(now);disp('Legen... wait for it...');while(mod(a()+1,24)~=a())end;disp('dary!')

かなり自明です。最初に、システムクロックの現在の時間を取得する関数ハンドルを作成します。次に、Legen... wait for it...キャリッジリターンで表示し、whileループを開始して、1を追加した現在の時間が現在の時間と等しくないかどうかを確認します。そうであれば、ループを続けます。次の時間が発生する瞬間までのみ表示dary!し、その後に復帰が発生します。

MATLABの時間は24時間のインデックスに基づいているため、mod午後11時(23:00)から真夜中(00:00)までのスピルオーバーを処理するには、24を基数とする操作が必要です。

マイナーノート

このhour関数には、Financial Time Seriesツールボックスが必要です。このnow関数はこの制限の対象ではありませんが、現在の日付と時刻をシリアル番号として取得し、現在の時刻hourを計算するために使用します。

これをOctaveで実行したいですか?

承知しました!Octaveにはこのツールボックスがないため、年、月、日、時、分、秒ごとに1つずつ、6つの要素のベクトルを返すhour関数を呼び出すように関数を変更する必要がdatevecあります。出力の4番目の要素を抽出する必要があります。

a=@()datevec(now)(4);disp('Legen... wait for it...');while(mod(a()+1,24)~=a())end;disp('dary!')

追加の文字により、ソリューションは最大98バイトになりますが、Octaveでこれを実行できます。関数ハンドルに一時変数のないインプレースインデックスに注意してください。

財務時系列ツールボックスはありませんか?

Financial Time Series Toolboxを使用せずにMATLABでこれを実行する場合、一時的な変数を使用せずにすぐに変数にインデックスを付けることはできないため、書き込むにはもう少しバイトが必要になります。

disp('Legen... wait for it...');h=datevec(now);ans=h;while(mod(h(4)+1,24)~=ans(4)),datevec(now);end;disp('dary!');

これは、最初に現在の時刻と日付を取得して変数にh保存するとともに、これをと呼ばれる自動変数に保存しますans。その後、ループを繰り返し、現在の時間が次の時間と等しくないかどうかを確認します。繰り返しごとに、現在の日時で自動変数を更新し続けます。次の時間が現在の日時と一致するとすぐに、文字列の最後の部分を表示して終了します。これにより、バイトカウントが114になります。


また、これをオンラインで試すことはできないことに注意してください。オンラインのオクターブインタープリターには、コードの実行に時間制限があり、これはwhile次の1時間の発生を待機するループであるため、コードの実行を待機している間にタイムアウトが発生します。あなたができる最善のことは、あなた自身のマシンでそれを実行し、それが動作することを確認することです。


最初の方法nowでは、代わりにwhileループをチェックインすることで3バイトを節約できますa=@()disp('Legen... wait for it...');while floor(mod(now*86400,3600))end;disp('dary!')a=@()コードはそのままで完全なプログラムを構成するため、ビットを削除することでさらに5バイトを節約することもできます。添付コードもFTSツールボックスを必要としません。
トムカーペンター

Financial Toolboxのhour機能について、どのように知りましたか?:-)
ルイスメンドー

今、私はあなたが...インデックス作成のための中間変数を必要とするについてあなたのコメントで何を意味するのか見る
ルイスMendo

4

Mathematica、85 84 81バイト

c=Print;c@"Legen... wait for it...";a:=DateValue@"Hour";b=a;While[a==b];c@"dary!"

「dary!」にすることで2バイト節約できると思います。式の出力。
CalculatorFeline

@CatsAreFluffyそれはスニペットであり、完全なプログラムではありません。
LegionMammal978

そう?Mathematicaでは式の出力は受け入れられませんか、それとも何かが足りませんか?
CalculatorFeline

@CatsAreFluffy Mathematicaスクリプトが存在するため、与えられたすべてのプログラムは1つで実行されることが期待されています。
LegionMammal978

4

C、163バイト

#include<time.h>
f(){puts("Legen... wait for it...");time_t t=time(0);struct tm l=*localtime(&t);while(l.tm_min+l.tm_sec)t=time(0),l=*localtime(&t);puts("dary!");}

3
PPCGへようこそ!
エリックアウトゴルファー

155バイト(TIO上でそれを実行している気にしないでください、それはそれがタイムアウト1分後、終了しません)
MD XF

3

Microscript II、45バイト

"Legen... wait for it..."P[36s5E*sD%_]"dary!"

最後に、D命令の使用。

最初の文字列を出力し、3,600,000を法とするミリ秒単位のUTC時間を繰り返して0になり、次に暗黙的に出力される2番目の文字列を生成します。3,600,000は、コードでは36x10 5として表されます。


説明を追加できますか?c:
アディソンクランプ

@VoteToClose完了
-SuperJedi224

3

TI-BASIC、70 64バイト

getTime
Disp "Legen... wait for it...
Repeat sum(getTime-Ans,1,1
End
"dary

これらの2バイトの小文字を呪ってください!

getTime3要素のリストを返す{hours minutes seconds}ため、1番目の要素から1番目の要素までの合計が時間です。開始時間と現在の時間に差がある場合、ループは終了します。この観察をしてくれた@FryAmTheEggmanに感謝します。


3

R-97バイト

cat('Legen... wait for it...\n')
Sys.sleep(1)
while(as.double(Sys.time())%%3600>0){}
cat('dary!')


3

Python 2、82 81バイト

from time import*;print'Legen... wait for it...';sleep(-time()%3600);print'dary!'

コメントするには評判が低すぎます。Alexander NiglのソリューションのPython 2バージョン。角かっこで失われた文字を保存します。また、3600はスリープ時間の計算には必要ありません。

全体で7文字が保存されました。

編集:@Kevin Cruijssenのおかげで-1バイト


1
;プログラムの最後にある末尾を削除することにより、1バイトを節約できます。それなしで正常に動作するようです。:)でもいい答えだから、私から+1(コメントできます)。
ケビンクルーッセン

おかげで、@ KevinCruijssen
Henry T

2

Windowsコマンドスクリプト、87バイト

@set.=%time:~,2%&echo.Legen... wait for it...
:.
@if %.%==%time:~,2% goto:.
@echo.dary!

これにより、開始時に保存された時間変数が現在の時間と継続的に比較され、異なる場合は成功します。


2

Perl、62バイト

sleep -++$^T%3600+print'Legen... wait for it...
';print'dary!'

特殊変数$^T(別名$BASETIME)は、スクリプトが開始されてからのエポックからの秒数を記録します。幸いなことに、うるう秒は合計にカウントされないため、以下は同等です。

print$^T%3600;
@T=gmtime;print$T[1]*60+$T[0];

驚くべきことに、この変数は読み取り専用ではありません。


-Eここでは一般的ではないように思われるため、を使用して5バイト節約できますsay
デニス

チャレンジの説明から:「プログラムまたは関数を記述できます。」コマンドラインから実行されるコードはどちらでもありません。
プリモ

あなたの言ってる事がわかります。ただし、プログラムまたは機能の制限はすべてのチャレンジにデフォルトで適用されますが、perl -Eオンラインインタープリターのみを含む投稿および言語は引き続き許可されます。
デニス

-Eデフォルトで許可されるべきではないことに同意します。とにかく、ほとんどの場合、改善は些細で面白くないです。
プリモ

2

Japt72 61バイト

`{?tT?e?t(Ã?t,36e5-?w D?e%36e5,'ÜÝ!'),'Leg?... Ø2 f? ?...\n'}

それぞれ?がUnicodeの印刷不可能な文字を表します。全文を取得する方法は次のとおりです。

  1. オンライン通訳を開きます
  2. このコードを[コード]ボックスに貼り付けます。
Oc"`\{setTimeout(alert,36e5-new Date%36e5,'dary!'),'Legen... wait for it...\\n'}
  1. コードを実行し、[コード]ボックスから消去します。
  2. [出力]ボックスの内容を選択し、[ コード]ボックスにドラッグします。コピーと貼り付けは機能しません
  3. 最初のスペースを改行なしスペースに置き換えます。
  4. (オプション)コンピューターのクロックをxx:59に設定します。
  5. コードを実行します。

あるいは、ここに(できれば元に戻せる)hexdumpがあります:

00000000: 607b a074 548b 658c 7428 c300 742c 3336 65    `{ tT?e?t(Ã?t,36e
00000011: 352d 9a77 2044 8565 2533 3665 352c 27dc dd    5-?w D?e%36e5,'ÜÝ
00000022: 2127 293b 274c 6567 812e 2e2e 20d8 3220 66    !'),'Leg?... Ø2 f
00000033: 8e20 8a2e 2e2e 5c6e 277d                      ? ?...\n'}

このコードはGeorge ReithのJavaScriptの回答に基づいており、Japt固有の変更がいくつかあります。先日、コードを圧縮してバックティックでラップされた文字列に挿入すると、自動的に解凍されることがわかりました。コンパイルによってどのように処理されるかを次に示します。

`{?tT?e?t(Ã?t,36e5-?w D?e%36e5,'ÜÝ!'),'Leg?... Ø2 f? ?...\n'}
"{setTimeout(alert,36e5-new Date%36e5,'dary!'),'Legen... wait for it...\n'}"
""+(setTimeout(alert,36e5-new Date%36e5,'dary!'),'Legen... wait for it...\n')+""

JSでは、括弧のペアは内部の最後の値を返します。したがって、このコードは時間指定イベントを設定し、'Legen...'文字列を返します。この文字列は自動的にSTDOUTに送信されます。現在、Japtにはコンパイル時の自動出力以外にコンテンツをSTDOUTに追加する方法がないため、代わりに標準出力にバニラJS関数alertを使用しました。これが許可されることを願っています。


これのhexdumpを投稿できますか?
spaghetto

@quartata完了。私はそれが正しいと信じています。
ETHproductions

2

Powershell、52 51バイト

-1バイトありがとう@Veskah

'Legen... wait for it...'
for(;Date|% M*e){}'dary!'

この式Date|% M*eMinute、Current DateTime値のプロパティから値を取得します。ループは、Minute0 に等しくなると終了します。


1
中括弧の直後に「日記」を置くことができるはずです。少なくともPSv5ではできます。
ヴェスカー

1

Python、112バイト

import time as t;print "Legen... wait for it...";n=t.ctime();t.sleep((60-n.tm_min)*60+60-n.tm_sec);print "dary!"

かなり自明です。


print文と次の文字列の間のスペースを取り除くことで2を節約できます。:)
ヘンリーT

1

Python-159バイト

from datetime import*;from threading import*;p=print;n=datetime.now();p('Legen... wait for it...');Timer(3600-(n.minute*60+n.second),lambda:p('dary!')).start()

1

Mouse- 2002、62バイト

ユーザーがEnterキーを押す必要があります。おもう。

"Legen... wait for it..."?&HOUR 1+x:(&HOUR x.=["dary"33!'0^])

さて、まあ、私たちはたくさんのバイトを取っているが、何も勝てない間、少し楽しみましょう。

"Legen... wait for it... "?     ~ print & require keypress

&HOUR 1+ x:                     ~ get hr, add 1 and assign
(                               ~ while(1)
  &HOUR x. =                    ~ cmp current hr, stored hr
  [                             ~ if same
    #B;                           ~ backspace
    "dary"36!'                    ~ print this string and a !
    0^                            ~ exit cleanly
  ]                             ~ fi
  &MIN 59 - &ABS !              ~ get min, subtract from 59, abs & print
  ":"                           ~ record sep
  &SEC 59 - &ABS !              ~ same for second
  #B;                           ~ backspace
)
$B 8!' 8 !' 8 !' 8 !' 8 !'@     ~ backspace 5*
$                               ~ \bye

サンプル:

$ mouse legend.m02
Legen... wait for it... 20:32

ほら、次の1時間までのその場で更新するカウントダウンタイマーです!whileループをうまく利用し、何もしなくてもコアを占有します。


1

ベーシック、90バイト

Print"Legen... wait for it...":x$=Left(Time,2):Do:Loop Until x$<>Left(Time,2):Print"dary!"

型の接頭辞と暗黙のEndステートメントを使用して簡単にゴルフを進めます。コストは、FreeBasic方言でのみ機能することfbliteです。


1

Befunge 98 - 69の 63バイト

 v
v>a"...ti rof tiaw ...negeL<ETB>"k,
>"EMIT"4(MS+_"!yrad"5k,@

コードには1つの印刷できない文字が含まれています(印刷できない文字<ETB>はコードブロックに表示されないように表されます)。その文字コードは23(End Transmission Block Character)です。

警告:上記のコードはビジーループで実行され、繰り返しのたびにスタックが大きくなるため、大量のメモリを消費する可能性があります。


1

ゼリー48 47 バイト、非競合

Erik the Golferのおかげで-1バイト(圧縮の単語として「Leg」を使用)

“ÇỴġƒḃhlḂṀ⁷*Ḣ¡w*Jḷv»Ṅø3ŒTṣ”:V_@59ḅ60‘œS@“dary!”

TryItOnline!または、ハードコーディングされた時間形式文字列( "mm:ss")を使用してテストバージョン実行し“59:57”ます。

Jellyの最初のコミットは、Dennisがこのチャレンジを作成した数日後に行われました。このコードが最初に機能した日付はわかりませんが、いずれにしても競合していません。
執筆時点では、書式設定された文字列を介して時間にアクセスする方法は1つしかありませんŒT

このコードは、待機時間を計算してからスリープします。で呼び出されhh:00:00た場合、3600秒待機します:に変換"00:00"[0,0]てから減算してから59yield [59,59]に変換し、ベース60からgive 3599に変換し、1を追加して合計待機時間を3600秒にします。

ループが作成される可能性があります。または「Legendary」という単語全体を使用した圧縮文字列を何らかの方法で利用できますか?

“ÇỴġƒḃhlḂṀ⁷*Ḣ¡w*Jḷv»Ṅø3ŒTṣ”:V_@59ḅ60‘œS@“dary!” - Main link: no arguments
“ÇỴġƒḃhlḂṀ⁷*Ḣ¡w*Jḷv»                            - compressed "Legen... wait for it..."
                    Ṅ                           - print z + '\n', return z
                     ø                          - niladic chain separation
                      3ŒT                       - '011' (3) time formatted string = "mm:ss"
                         ṣ”:                    - split on ':' -> ["mm","ss"]
                            V                   - eval -> [m,s]
                             _@59               - subtract from 59 - > [59-m, 59-s]
                                 ḅ60            - convert from base 60 -> 60*(59-m)+(59-s)
                                    ‘           - increment -> 60*(59-m)+(59-s) = y
                                        “dary!” - "dary!" = x
                                     œS@        - sleep y seconds then return x
                                                - implicit print

1
“ÇỴġƒḃhlḂṀ⁷*Ḣ¡w*Jḷv»代わりに使用します“¤ßƇṪOƭ!½ȯƤxEẹ<Ȯ¹z7⁷»Leg(from Legen)も単語です:)また、この答えは無効です。これは、分と秒の両方に依存するため00です。あなたが何かをすべき4ŒTこと、述べルールがあるので、代わりにIn the event that the program is started in the first second of a full hour, it should it wait for the next full hour.
エリックOutgolfer

クール、「レッグ」はバイトを節約します、ありがとう。ただし、リンクは00:00、その条件をテストしていないため、呼び出されたときに機能し"00:00"ます。次までの秒数を計算してから待機します。だから、変換します"00:00"する[0,0]から差し引く59収率に[59,59]ベース60から取得することで変換3599してから取得するために1を追加します3600(とテストバージョンを使用してテスト"00:00"の代わりに"59:57"
ジョナサン・アラン

1
ああ。、説明の中で、私は考えるが、それは私が長いゼリーコードを読み取ることができないようだ、と私はみんなの用途と期待を知ることができないという:) 60*(59-m)+(59-s)でなければならない60*(59-m)+(59-s)+1代わりに、二回目は、それが表示されますか?
エリックアウトゴルファー

問題ありません-解説は私がこれまで書いた中で最も明確ではありません。
ジョナサンアラン

あなたが面倒を取ることができない場合はまあ、私はそれをして編集することができます。また、私は右/左としてのx / yをやってお勧めします、とだけ言うsleep x seconds then return y-becauseが<dyad>@スワップargsを持つ別のダイアドとして定義することができます。
エリックアウトゴルファー

1

MathGolf、39バイト

"Legen... wait for it..."pÆt♪/╚÷▼"dary!

オンラインでお試しください!

ほぼビートの...

説明

Æ     ▼  Repeat the next 5 characters while false
 t       push unix time in milliseconds
  ♪/     divide by 1000
    ╚÷   check if divisible by 3600 (tio solution has 3 in its place)

「ほとんど」?あなたがしたように見えます。
パトリックロバーツ

@PatrickRobertsには、36バイトの別のpythソリューションがあり、圧縮された文字列や他のトリックでもそこに到達することはできませんでした。
maxb

あれ 間違っています、コメントを見てください。
パトリックロバーツ

@PatrickRoberts「00:00で実行する場合は1時間待たなければならない」という基準にも失敗するかもしれませんが、同じバイト数で3600000で割り切れるミリ秒単位のUnixtimeをチェックするように変更できます。ミリ秒、それは常に動作するはずです
maxb

0

Pyth-36バイト

whileループで分が0になるまで待機します。

"Legen... wait for it..."W.d7)"dary!

11
分と秒が0になるまで待機する必要があります。また、プログラムが:00:00
次の時刻に

0

Java、136バイト

class a{void A(){System.out.println("Legen... wait for it...");while(System.currentTimeMillis()%3600000!=0);System.out.print("dary!");}}

最後の1時間から何ミリ秒が経過したかは、System.currentTimeMillis()mod 3,600,000の結果です。

同等のモノリシックプログラムの長さは159バイトです。

interface a{static void main(String[]A){System.out.println("Legen... wait for it...");while(System.currentTimeMillis()%3600000!=0);System.out.print("dary!");}}

0

QBIC、58バイト

?@Legen... wait for it...|#Dary!|{~mid$$|(_d,4,2)=@00||_XB

説明

?@Legen... wait for it...|     Define string literal "Leg[..]it..." and print it
#Dary!|                        Define string B as "Dary!", but don't use it yet
{                              Opens an indefinite DO loop
~mid$$|(...)=@00|              Translates to IF MID$(...) = C$, where C$ is "00"
    The MID$ takes two characters, starting from pos 4, from the system's time (_d)
    So, if the string "11:00" has "00" starting at pos 4,
_XB                            Terminate the program and print string B
(The DO loop and the IF are closed implicitly)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.