Masalah
Suatu hari, bos Anda mendatangi Anda dan memberi tahu Anda bahwa dia perlu tahu waktu. Dia masih bersikeras setelah Anda menunjuk jam tepat di atas kepala Anda, dan mengaku memiliki kasus parah dyscalculia , yang menyebabkan dia bahkan tidak dapat melihat angka pada jam. Sementara Anda masih bertanya-tanya bagaimana seseorang yang tidak dapat melihat angka dapat menjalankan perusahaan, dia memberi tahu Anda untuk "melakukan sesuatu tentang hal itu", apa pun itu.
Tugas Anda sekarang adalah membuat program atau fungsi yang, diberi waktu input dengan jam dan menit (detik opsional) (jam berbasis 24), menghasilkan kalimat bahasa Inggris yang dapat dibaca, yang tidak mengandung angka.
Tidak perlu mengganti detik.
Misalnya 08:45:15
harus outputquarter to nine o'clock AM
Uji kasus
00:00:00 > twelve night
12:00:00 > twelve noon
06:00:00 > six o'clock AM
18:00:00 > six o'clock PM
06:15:00 > quarter past six o'clock AM
18:45:00 > quarter to seven o'clock PM
11:30:00 > half past eleven o'clock AM
13:22:00 > twentytwo minutes past one o'clock PM
17:43:00 > seventeen minutes to six o'clock PM
00:09:00 > nine minutes past twelve o'clock AM
Aturan
Angka-angka keluaran dapat berupa empat puluh dua atau empat puluh dua, mana yang paling Anda sukai. Tidak ada celah standar. Mengejar baris baru diperbolehkan, tetapi hukumannya harus di 1 baris.
Masukan bisa dalam format yang Anda inginkan, misalnya HH:MM:SS
, HH,MM,SS
, HHMMSS
, HH/MM/SS
, atau varian tanpa detik, tetapi Anda harus membuat format masukan jelas dalam jawaban Anda. Itu tidak diperlukan untuk output, one minute
bukanone minutes
untuk menit mulai dari 0 hingga 30 (termasuk 0 dan 30) Anda harus menggunakan past
, dan untuk yang lain Anda harus menggunakanto
Karena waktu relatif, kode terpendek dalam byte menang.
sumber
forty-five
ketika kasus uji dengan jelas menyatakanquarter to
sebagai format input yang sesuai? (cukup ubah ke empat puluh dua;)) Juga, kolmogorov-kompleksitas bukanlah tag yang sesuai.one
untuktwenty-nine
, denganquarter
menggantikanfifteen
danhalf
mewakilithirty
, tapi itu tidak jelas. Juga, untuk pertanyaan di masa mendatang, saya sungguh-sungguh merekomendasikan Sandbox untuk menyelesaikan kekusutan sebelum memposting.Jawaban:
Javascript,
384381 byteTampilkan cuplikan kode
sumber
LaTeX, 466 byte
Panggil saja makro
\f
sebagai\f[hour]{minutes}
, di sini beberapa tes:sumber
\documentclass[a4paper,12pt]{article}
Python 2, 498 byte
Input muncul sebagai argumen fungsi. Jam pertama dan kemudian menit, keduanya sebagai bilangan bulat. Hasilnya akan dicetak ke layar.
Cobalah online! (dengan testcards sedikit diperpanjang)
Itu golf yang sangat menyenangkan. Meskipun semua terner yang bersarang membuat saya sedikit gila ^^
Saya berencana melakukan ini di Pyth setelah ini, tetapi saya tidak berpikir bahwa saya secara mental dapat melakukan ini pada saat ini (atau pernah).
Tidak Disatukan:
sumber
[x>12]
seharusnya[x>=12]
, 12:01 adalah PM, bukan AMPerl 5,
367 361385 BytesRusak
Kasus yang diformat dan diuji:
sumber
one minutes to one o' clock night
output untuk 00:01, bukanone minutes past twelve o'clock AM
atauone minutes past twelve night
C, 478 byte
Uji Kasus
Coba di sini .
sumber
00 00
memberikan output yang benar, sementara00:00
memberione minutes past twelve o'clock AM
, meskipun saya yakin itu ada hubungannya dengan bagaimana Anda mengurai input.scanf
mungkin tidak menguraikan '00: 00 'seperti yang mungkin diharapkan :)Batch,
779774752749 byteUbah baris kedua
set t=%1%time%
ke default untuk mengatakan waktu saat ini jika tidak ada waktu yang disediakan.Sunting: Disimpan 22 byte dengan mengoptimalkan
set/a
pernyataan saya . Disimpan 3 byte berkat @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.Ketika saya menulis versi asli saya, saya membuat kesalahan dengan mengatakan waktu sebagaimana saya benar-benar mengatakannya, yaitu jam hanya pada jam yang tepat, dan tengah malam dan tengah hari, bukan dua belas malam dan dua belas siang:
sumber
midnight
danmidday
bukannyatwelve night
dantwelve noon
. Saya sangat suka bagaimana Anda menggunakan ekstensi dan nama palsu di untuk btw loop Anda.