数年前に最初のものを見たので、私は常にこの種のワードクロックに支配されていました。
その時計に表示されるテキストは次のとおりです。
IT IS HALF TEN
QUARTER TWENTY
FIVE MINUTES TO
PAST TWO THREE
ONE FOUR FIVE
SIX SEVEN EIGHT
NINE TEN ELEVEN
TWELVE O'CLOCK
あなたの仕事は、そのような作業クロックを書くことです。現在の時刻の印刷に関連する場合にのみ、単語が点灯します。それ以外の場合、それらは点灯します。単語は印刷されることにより「点灯」され、単語の長さであるスペースの数に置き換えられることにより「消灯」されます。
例:現在の時刻が17:23の場合、印刷されるテキストは次のとおりでなければなりません。
IT IS
TWENTY
FIVE MINUTES
PAST
FIVE
ルール
- 印刷される時間は12hバリアントですが、AM / PMはありません。
- 四捨五入は分単位でのみ行われます(秒はまったく関係ありません)。丸めは5の最も近い倍数で行われます。たとえば、17:52:38は実際には17:55に最も近いですが、秒は無関係なので、17:52は実際には17:50に切り捨てられます。また、印刷されるテキストは「6分間で10分です」(関連するスペースを使用)です。
XX
5の倍数の場合XX
、HH:(XX-2):00からHH:(XX + 2):59まで使用されます。単語がMINUTES
あれば表示される必要がありますFIVE
、TEN
またはTWENTY
(「TO」や「過去」の前に)分のセクションに点灯されています。 - 関係のない単語はすべて、必要な数のスペースに置き換えられ、上記のテンプレート内のテキストを保持します。末尾のスペースは削除される場合があります。テキストを予想される位置に保持することに関連するスペースを保持する必要があります。
末尾の行もトリミングできます。関連する空の行を表示するには、引き続き必要です。例:
IT IS TEN MINUTES PAST TWO
これらの値が時間を指している場合
TEN
、1行目またはFIVE
3行目に点灯しないでください。- 入力を受け入れることができます。入力を受け入れる場合、入力は任意の有効な形式(文字列、整数のリスト、言語サポートのネイティブ時間タイプなど)で印刷する時間になりますが、関連していない場合はパラメーターを使用できません印刷する時間に。入力をサポートしない場合は、現在の時刻を使用する必要があります。両方をサポートする場合、それは良いですが、ボーナスはありません;)
- コードはプログラム、関数、ラムダですが、スニペットではありません。
- 言語が何らかの方法で印刷をサポートしている場合、結果を印刷する必要があります(ファイルで、標準出力に、私は気にしません)。あなたの言語が何らかの方法で印刷をサポートしていない場合、期待されるテキストを単に「返す」ことが許可されます。結果は、両方が混在するのではなく、すべて大文字またはすべて小文字になる可能性があります。
- 標準の抜け穴が適用されます。
- これはコードゴルフなので、最短のコードが勝ちです!
- 可能な限り、あなたの言語のオンライン通訳へのリンクを提供してください。
テストケース
Input: <no input> (the current local time is 19:20)
Output:
IT IS
TWENTY
MINUTES
PAST
SEVEN
Input: 13:15
Output: (empty line is being printed)
IT IS
QUARTER
PAST
ONE
Input: 13:58
Output: (rounding)
IT IS
TWO
O'CLOCK
Input: 14:30
Output: (half is always a edge-case)
IT IS HALF
PAST TWO
Input: 15:35
Output: (light up "TO")
IT IS
TWENTY
FIVE MINUTES TO
FOUR
Input: 10:00
Output: (do not use the TEN or FIVE on the first line when referring to the hours)
IT IS
TEN
O'CLOCK
Input: 12:00
Output: (O'CLOCK and a lot of empty lines)
IT IS
TWELVE O'CLOCK