Karena saya benar-benar hyped untuk acara Final Fantasy XV Uncovered , saya ingin Anda menulis saya sebuah program untuk memberi tahu saya kapan itu !!!
Input
Input take Anda dalam bentuk HH:MM XDT
, di mana HH
angka dalam rentang 1-12
, MM
adalah angka di antara 0-60
, dan XDT
merupakan zona waktu, dengan X
menjadi salah satu E
(timur, UTC-4), C
(pusat, UTC-5), P
(pasifik, UTC-7), atau M
(gunung, UTC-6). Ini adalah waktu yang dianggap sebagai PM. Input yang valid meliputi:
1:00 EDT (1 PM Eastern Daylight Time)
4:05 MDT (4:05 PM Mountain Daylight Time)
12:23 PDT (12:23 PM Pacific Daylight Time)
1:10 CDT (1:10 PM Central Daylight Time)
Input dapat dianggap valid.
Hasil
Program Anda harus melakukan hal berikut:
Konversi waktu yang diberikan ke PDT dan output
It is XX:XX PM PDT.
, di manaXX:XX
waktu yang dikonversi. Perhatikan bahwa Anda tidak perlu menangani kasus apa pun di mana mengonversi waktu akan melewati batas AM / PM.Cetak salah satu dari yang berikut:
Jika waktu yang dikonversi adalah sebelum 18:00 PDT, cetak
X minutes until the pre-show!
, gantiX
dengan jumlah menit hingga 18:00 PDT.Jika waktu yang dikonversi adalah setelah atau sama dengan 6:00 PM PDT dan sebelum 19:00 PDT , cetak
Pre-show started X minutes ago; UNCOVERED is starting in Y minutes!
, di manaX
jumlah menit yang telah berlalu sejak 18:00 PDT, danY
adalah jumlah menit hingga 7:00 PM PDT.Jika waktu yang dikonversi adalah setelah atau sama dengan 19:00 PDT , cetak
UNCOVERED started X minutes ago!
, di manaX
jumlah menit yang telah berlalu sejak 19:00 PDT.
Setiap string yang dicetak harus diikuti oleh baris baru.
Mencetak gol
Ini kode golf, jadi program tersingkat menang.
HH:MM XDT
salah ketik? Itu bisa sajaCST
.2:45 EDT
muncul sehingga kita perlu mendeteksi apakah waktu yang dikonversi adalah PM atau AM?CST
salah ketik, dan tidak ada waktu yang muncul yang bisa melewati batas AM / PM. Mengedit pos.Jawaban:
JavaScript (ES6), 257 byte
sumber
Python (335 byte)
Keluaran:
sumber
t=raw_input().replace(' ',':').split(':');x='PMCE'.index(t[2][0]);t[0]=int(t[0])+x;t[2]='PDT';print'%s:%s PM %s'%tuple(t);x=t[0]*60+int(t[1]);print['%s minutes until the pre-show!'%(360-x),'Pre-show started %s minutes ago; UNCOVERED is starting in %s minutes!'%((x-360),(420-x)),'UNCOVERED started %s minutes ago!'%(x-420)][(x>360)+(x>420)]
.replace(' ', ':').split(':')
dengan.replace(*': ').split()
, menghemat 6 byteLua,
357335332 byteTerima kasih kepada @Katenkyo karena telah memangkas 22 byte.
Golf:
( Coba online )
Tidak Disatukan:
sumber
h=h+0
, penambahan 0 akan secara otomatis mengonversi hasilnya menjadi angka. Juga, apakahn=(...)
wajib? bukankah lebih baik untuk inline penggunaan...
sebagai berikut ->h,m,t=(...):match("(%d+):(%d+) (.)")
, Anda tidak akan menggunakannya kembali, karena Anda kemudian mengubah nilain
menggunakanh
danm
:)r=(h<6 and n.." minutes until the pre-show!" )or h<7 and "Pre-show started "..m.." minutes ago; UNCOVERED is starting in "..(n+60).." minutes!" or "UNCOVERED started "..(m+(h-7)*60).." minutes ago!"
. Mungkin harus dikerjakan ulang sedikit, tetapi menggunakan ini akan menghemat banyak byte. Sebagai informasi, struktur terner di lua adalah<condition> and <case true, have to be evaluated to true> or <case false, can be anything>
h,m,t=(...):match("(%d+):(%d+) (.)")h=(h-("PMCE"):find(t))%12+1m=m+0print("It is "..h..":"..m.." PM PDT.")a=" minutes"b="UNCOVERED"n=(6-h)*60-m r=(h<6 and n.." minutes until the pre-show!" )or h<7 and"Pre-show started "..m..a.." ago; "..b.." is starting in "..(n+60)..a.."!"or b.." started "..(m+(h-7)*60)..a.." ago!"end print(r)
sebenarnya 329 byte;).C, 333 byte
333 byte setelah menghapus baris baru yang tidak perlu (semua kecuali satu setelah #define).
sumber
PHP,
347328327322 bytetampilan meledak
Berjalan sebagai
php script.php HH:MM XDT
. Dibawa dalam zona waktu dan waktu sebagai$argv
entri, regex$argv[1]
keluar ke$i = [HH, MM]
, menentukan zona waktu dari karakter pertama di$argv[2]
, menghitung berapa menit melewati 6PM PDT itu, kemudian ternaries theecho
.Bisa menjatuhkan 2 byte dengan menggunakan
$u=UNCOVERED
, tetapi itu akan menjadi satu-satunya kesalahan di sini dan saya suka ini bekerja dengan baik.sumber
PowerShell 292 Bytes
Penjelasan Kurang Golf
Literal untuk "lalu" telah dihapus dalam kode tetapi untuk sekarang dibiarkan penjelasan jika ada perubahan lain.
sumber