莱根...等等...


68

ary!

在与未来几天可能发生的事情完全无关的事件中,我要求您编写执行以下操作的代码:

  1. 打印

    Legen... wait for it...
    

    立即使用尾随换行符。

  2. 等到下一个小时(当授予徽章的Cron工作运行时)。

  3. 打印

    dary!
    

    可选的尾随换行符。

附加规则

  • 您可以编写程序或函数,但必须将输出打印到STDOUT(或它的最接近的语言替代品)中。

  • 您必须等到下一个完整小时,而不仅仅是60分钟。如果代码在6:58运行,则应在7:00打印第二行。

  • 最后一行必须在下一个完整小时后不迟于一秒钟的时间内打印出来。

  • 如果程序在一小时的第一秒内启动,则应等待下一个小时。

  • 您可以查询当地时间或UTC时间。

  • 适用标准规则。


1
我不明白第三条附加规则与基本的“等到下一个完整小时”
有何不同

2
@Fatalize这只是一个澄清,您必须等到小时变化,而不是要等到分秒都为00时才可以。
丹尼斯

25
快乐的传奇徽章,@ Dennis!
Kritixi Lithos

36
@ΚριτικσιΛίθος谢谢!(感谢神完成制表符。)
丹尼斯2015年

2
“按小时计算”是描述您所说的“下一个整小时”(至少是美式英语)的一种更标准的方法(我相信更为清晰)。
jpmc26 2015年

Answers:


12

佩斯,42 41

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

以下是代码的十六进制转储:

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进行分/秒,但在线编译器只在程序结束时打印任何东西。

恭喜,丹尼斯!:)


可以使用packed-str将字符串压缩1个字节。Hexdump:0000000: 2e22 2077 0c10 89e2 ab1b ad68 0f8c d660 ." w.......h...` 0000010: d9e1 a968 82b4 5e22 0a ...h..^".
isaacg,2015年

@isaacg糟糕,我检查了一下,但我一定搞砸了。我以为它只压缩了1个字节,所以额外.的长度会使它的长度相同。愚蠢的一对一错误:P
FryAmTheEggman,2015年

只是试图弄清楚这可能会做什么(根本没有使用pyth的经验)让我发笑。我明白了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 2015年

8
@ETHproductions你美丽!
乔治·瑞斯

3
@ETHproductions这是一些错误的科学表示法。我不知道它可以在Javascript上运行。今天学到了东西!!!
Ismael Miguel

2
@Optimizer阿不知道setTimeout会不会eval适合我。是的...我本来是想使用的,console.log但是由于上下文而存储在变量中甚至无法使用。你也很漂亮!
乔治·里斯

1
您可以setTimeout正确使用甚至保存一个字节:alert`Legen…`;setTimeout(alert,36e5-new Date%36e5,"dary!")
Bergi 2015年

9

CJam,49个48字节

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

使用当地时间。出于测试目的,可以更换的两个实例345使其打印在下一分钟/秒的开始。

在这里测试。但是请注意,在线解释器在程序终止之前不会显示任何输出。或者,您可以在“ 在线试用”上运行它,该输出几乎立即显示而不是被缓冲(但是当您用秒而不是数小时进行测试时,延迟会很明显)。无论如何,如果您使用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,157149字节

嗯 令人惊讶地竞争。

在(当前日期)的时间字符串中将d设置为数字1
日志“ Legen ...等待...”
在(当前日期)的时间字符串中d =数字1时重复
结束
登录“ dary!”

由于log打印到脚本编辑器的“消息”窗格,因此我认为它是最接近STDOUT的输出。基本上,如果您获得当前日期的时间字符串,它将执行以下操作:

码:

(当前日期)的时间字符串

输出:

下午5:02:03

它将获取5冒号之前的第一个数字()。

我认为实际上比这更长。xD


那么,如果您在03:03:00运行它会怎样?
Blacklight Shining 2015年

@BlacklightShining它将在前面获得数字3,并等待直到它为4。它只知道冒号之前的数字。
Addison Crump 2015年

哦,我错过了。好的。奇怪的是,我实际上只是"1"number 1 in time string of(current date)…… 得到
Blacklight Shining

@BlacklightShining您可能使用的是旧版本-在El Capitan中,等效于first number in time string of (current date)
艾迪生·克伦普

是的,我在优胜美地。first number还给了我时间的第一位数字("0"现在是04:38)。
Blacklight Shining 2015年

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到短版本<?(感谢的Primo)
通过更换-1字节while用于for
通过替换-3字节date(G)!=$h+1date(G)==$h(感谢primo)


不错,但是{};echo?>会减少一点。尽管我更喜欢Legen... wait for it...↵<?php while(+date('is'));?>dary!
manatwork

1
一些提示:您可以使用简短的打开标记(<?而不是<?php)。使用for(;;)的长度与的长度相同while(),但是您可以移动$h分配,而无需使用分号(for($h=date(h);...)。{}并不需要,但是;前面的都没有?>。您可能会遇到问题$h12,但是(date(h)永远不会是13)。
primo

谢谢你们,相应地更新了我的答案。我感觉不太舒服,猜想我今天不应该做重要的工作,因为它清楚地表明了哈哈
Martijn 2015年

2
更改date(G)!=$h+1date(G)==$h。更短,并解决了小时问题;)另外,请删除之前的分号?>
2015年

1
@manatwork如果代码在处运行(HH:00:00即在一小时内的第一秒钟内),它将无法等待。
2015年


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!`
Downgoat

2
@Downgoat短一个字节:for((a=alert)`Legen... wait for it...`,z=(b=new Date().getHours)();z==b(););a`dary!`
Ismael Miguel

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需要使用以24为基数的操作来处理从晚上11点(23:00)到午夜(00:00)的溢出。

次要音符

hour功能需要财务时间序列工具箱。该now函数不受此限制,但是它将检索当前日期和时间作为序列号,hour从而用于计算当前小时。

要在八度运行此程序吗?

当然!因为Octave没有此工具箱,所以我们只需要修改hour函数,以便调用datevec该函数即可返回一个由6个元素组成的向量-分别对应于年,月,日,时,分和秒。您只需要提取输出的第四个元素:

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。


另请注意,您无法在线尝试此操作。在线Octave解释器将对代码执行的时间进行限制,并且由于这是一个while等待下一个小时发生的循环,因此在等待代码运行时将出现超时。最好的办法是在自己的计算机上运行它,并检查它是否有效。


在你的第一个,你可以通过检查,而不是保存3个字节now的while循环:a=@()disp('Legen... wait for it...');while floor(mod(now*86400,3600))end;disp('dary!')。您也可以通过删除该a=@()位来节省另外5个字节,因为该代码按原样构成了一个完整的程序。随附的代码也不需要FTS工具箱。
汤姆·卡彭特

您如何了解Financial Toolbox hour功能?:-)
路易斯·门多

现在,我明白了您对需要中间变量进行索引的评论的意思……
Luis Mendo 2015年

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 '16

所以?表达式输出在Mathematica中是不可接受的,还是我缺少了什么?
CalculatorFeline

@CatsAreFluffy Mathematica脚本存在,因此任何给定的完整程序都应在同一程序中运行。
LegionMammal978 '16

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上运行它,它不会完成,一分钟后会超时)
MD XF

3

Microscript II,45个字节

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

最后,为D指令使用。

打印第一个字符串,重复以毫秒为单位对UTC时间取模3,600,000,直到产生0,然后生成隐式打印的第二个字符串。3,600,000在代码中表示为36x10 5


您能补充说明吗?c:
Addison Crump 2015年

@VoteToClose完成
SuperJedi224

3

TI-BASIC,70 64字节

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

诅咒这些两字节的小写字母!

getTime返回一个三元素列表{hours minutes seconds},因此从第一个元素到第一个元素的总和为小时。如果开始时间与当前时间之间存在差异,则循环结束。感谢@FryAmTheEggman的观察。


3

R-97个字节

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

3

Python 3-92 89字节

from time import*;print("Legen... wait for it...");sleep(3600-time()%3600);print("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个字符。

编辑:-1字节感谢@Kevin Cruijssen


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(aka $BASETIME)记录自脚本启动以来的纪元秒数。幸运的是,leap秒不计入总数,因此以下各项是等效的:

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

令人惊讶的是,此变量不是只读的。


不计数-E似乎在这里很普遍,因此您可以使用节省5个字节say
丹尼斯

根据质询描述:“您可以编写程序或函数。” 从命令行运行的代码都不是。
primo

我明白你的意思。但是,默认情况下,对程序或功能的限制适用于所有挑战,但我们仍然允许perl -E仅具有在线解释器的提交和语言。
丹尼斯

我不同意-E默认情况下应允许这样做。无论如何,在大多数情况下,这种改进是微不足道的且毫无意义的。
primo

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. 运行代码。

另外,这是一个(希望是可逆的)十六进制转储:

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用于定时输出。我希望这是允许的。


您可以发布此文件的十六进制转储吗?
的意大利面条

@quartata完成。我相信这是正确的。
ETHproductions 2015年

2

Powershell,52 51字节

-1字节@Veskah

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

该表达式从当前DateTime值的属性中Date|% M*e获取Minute值。Minute等于0 时循环结束。


1
您应该可以直接将“ dary”放在大括号后面,或者至少可以在PSv5中使用。
Veskah

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!"

很自我解释。


通过消除打印语句和以下字符串之间的空格,可以节省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

鼠标 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

看,这是到下一个小时的就地更新倒计时计时器!它充分利用了while循环,即使不执行任何操作也将占据核心。


1

BASIC,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,@

该代码包含一个不可打印的字符(由<ETB>不可打印的内容似乎未显示在代码块中表示)。它的字符代码是23(结束传输块字符)。

警告:前面的代码将在繁忙的循环中运行,每次重复堆栈都会变得越来越大,因此可能会占用大量内存。


1

果冻48 47 字节,不竞争

-1个字节,感谢高尔夫球手Erik(在压缩中使用“ Leg”作为单词)

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

TryItOnline!运行带有“59:57”(“ mm:ss”)硬编码时间格式字符串的测试版本

Jelly的第一次提交是由Dennis在提出此挑战后的几天作出的,我不确定该代码在什么日期开始生效,但是无论如何都没有竞争。
在撰写本文时,只有一种方式可以访问时间,即通过格式化字符串ŒT

此代码计算等待多长时间后再进入睡眠状态。如果在调用时hh:00:00等待3600几秒钟:它将转换"00:00"为,[0,0]然后从中减去59到yield [59,59],将其从基数60转换为给定3599,然后加一,等待总3600秒数。

也许可以做一个循环。还是可以使用整个单词“传奇”的压缩字符串?

“ÇỴġƒḃ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.
Egg the Outgolfer

很酷,“腿”节省了一个字节,谢谢。但是,该链接确实在调用时起作用,00:00因为它没有测试该条件-它计算直到下一个秒"00:00"然后等待几秒钟。因此它将转换"00:00"为从中[0,0]减去59以产生,然后[59,59]从基数60转换为得到3599,然后加一个得到3600(使用"00:00"代替的测试版本对其进行测试"59:57"
Jonathan Allan

1
哦。似乎我无法阅读冗长的Jelly代码,而且我不知道每个人的用途和期望:)尽管,在解释中,我认为这60*(59-m)+(59-s)必须是60*(59-m)+(59-s)+1第二次出现?
暴民埃里克(Erik the Outgolfer)'16

没问题-评论不是我写过的最清晰的评论。
乔纳森·艾伦,

好吧,如果您不能麻烦,我可以对其进行编辑。此外,我建议您将x / y设置为左/右,并说sleep x seconds then return y一句,因为<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)

“几乎”?看起来像您一样。
Patrick Roberts

@PatrickRoberts还有另一个pyth解决方案,它是36字节,即使使用压缩的字符串和其他技巧也无法完全达到目标。
maxb

哦,那个。是错误的,请看评论。
帕特里克·罗伯茨

@PatrickRoberts我也可能在“如果在00:00上运行也必须等待一个小时”标准上失败,但是我可以更改它以检查Unixtime(以毫秒为单位),该整数可以被3600000除以相同的字节数。毫秒,它应该一直有效
maxb 18/09/29

0

Pyth-36个字节

等待一分钟,直到分钟为0。

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

11
您需要等待分钟和秒为0,并且如果程序在以下时间运行,则还需要等待一整小时:00:00
lirtosiast 2015年

0

Java,136个字节

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

自上一整小时以来经过了多少毫秒是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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.