MATLAB - 89 byte
a=@()hour(now);disp('Legen... wait for it...');while(mod(a()+1,24)~=a())end;disp('dary!')
Cukup jelas. Pertama, buat pegangan fungsi untuk mengambil jam saat sistem jam. Kemudian, tampilkan Legen... wait for it...
dengan carriage return, dan kemudian kita masuk ke while
loop di mana kita terus memeriksa untuk melihat apakah jam saat ini ditambah dengan 1 tidak sama dengan jam saat ini. Jika ya, terus lakukan perulangan. Hanya sampai saat ketika jam berikutnya terjadi, kami menampilkan dary!
dan carriage return terjadi setelahnya.
Jam MATLAB didasarkan pada pengindeksan 24 jam, sehingga mod
operasi dengan basis 24 diperlukan untuk menangani tumpahan mulai dari jam 11 malam (23:00) hingga tengah malam (00:00).
Catatan Kecil
The hour
Fungsi membutuhkan waktu Keuangan Series toolbox. The now
Fungsi tidak dikenakan pembatasan ini, tetapi mengambil tanggal dan waktu sebagai nomor seri yang hour
demikian menggunakan untuk menghitung jam saat ini.
Ingin menjalankan ini di Oktaf?
Tentu! Karena Oktaf tidak memiliki kotak alat ini, kami hanya perlu memodifikasi hour
fungsi sehingga ia memanggil datevec
yang mengembalikan vektor 6 elemen - satu untuk masing-masing tahun, bulan, hari, jam, menit dan detik. Anda hanya perlu mengekstrak elemen keempat dari output:
a=@()datevec(now)(4);disp('Legen... wait for it...');while(mod(a()+1,24)~=a())end;disp('dary!')
Karakter tambahan membuat solusinya mencapai 98 byte, tetapi Anda akan dapat menjalankan ini dalam Oktaf. Perhatikan pengindeksan di tempat tanpa variabel sementara dalam fungsi menangani.
Tidak Ada Toolbox Seri Waktu Keuangan?
Jika Anda ingin menjalankan ini di MATLAB tanpa Financial Time Series Toolbox, karena Anda tidak dapat langsung mengindeks ke dalam variabel tanpa variabel temporer, ini akan membutuhkan sedikit lebih banyak byte untuk ditulis:
disp('Legen... wait for it...');h=datevec(now);ans=h;while(mod(h(4)+1,24)~=ans(4)),datevec(now);end;disp('dary!');
Ini pertama kali mendapatkan waktu dan tanggal saat ini dan menyimpannya ke dalam variabel h
serta menyimpannya ke dalam variabel otomatis yang disebut ans
. Setelah itu, kami terus mengulang dan memeriksa apakah jam saat ini tidak sama dengan jam berikutnya. Pada setiap iterasi, kami terus memperbarui variabel otomatis dengan waktu dan tanggal saat ini. Segera setelah jam berikutnya sesuai dengan waktu dan tanggal saat ini, kami menampilkan bagian terakhir dari string dan berhenti. Ini mendorong jumlah byte ke 114.
Perhatikan juga bahwa Anda tidak dapat mencoba ini secara online. Interpreter oktaf online akan memiliki batas waktu kapan kode dijalankan, dan karena ini adalah while
perulangan menunggu jam berikutnya terjadi, Anda akan mendapatkan batas waktu sambil menunggu kode dijalankan. Hal terbaik yang dapat Anda lakukan adalah menjalankannya di komputer Anda sendiri dan memeriksa apakah itu berfungsi.