Bonjour, PPCG! Quelle heure est-il? Ini artinya jam berapa di Perancis, karena itulah tantangan ini.
Memberitahu waktu dalam bahasa Prancis (setidaknya secara formal) agak sedikit berbeda dengan menceritakan waktu dalam bahasa Inggris. Memberitahu waktu dimulai dengan Il est ( Yaitu ). Kemudian, Anda menempatkan jam diikuti oleh heures (jam). (Jika Anda tidak tahu nomor Prancis, berikut daftarnya: http://blogs.transparent.com/french/french-numbers-learn-how-to-count-from-1-to-1000/ ). Jika jam 1, lakukan heure une untuk ini. Untuk siang hari, gunakan midi (tanpa heures), dan untuk tengah malam gunakan minuit .
Kecuali jika menit adalah 00, Anda kemudian mengikutinya dengan jumlah menit. Namun ada beberapa pengecualian. Selama 15 menit, Anda ingin mengucapkan et quart , dan selama 30 menit Anda ingin mengatakan et demi . Untuk apa pun setelah 30 menit, Anda menambah jumlah jam per satu, lalu tambahkan kata moins dan 60 - menit. Jadi 18:40 adalah Estest heures moins vingt (vingt = 20). 45 menit akan menjadi bulan kuart .
Akhirnya, Anda mengakhirinya dengan waktu sehari. Untuk pagi hari (01: 00-12: 00), Anda mengatakan du matin . Untuk sore hari (subyektif, tetapi saya akan mendefinisikannya sebagai 1 siang sampai 5 sore), Anda mengatakan de l'apres-midi (secara teknis harus ada aksen di atas e, tapi eh). Dan untuk malam hari (jam 17.00 - 12.00) Anda mengatakan du soir . Perhatikan bahwa untuk tengah malam dan siang hari ( minuit dan midi ) Anda tidak memasukkan semua ini sesudahnya - waktu hari tersirat berdasarkan mana yang Anda gunakan.
Karena Anda mungkin sudah memastikan, tantangan di sini adalah untuk mencetak waktu setempat saat ini dalam bahasa Prancis menggunakan aturan-aturan ini. Inilah contoh output yang seharusnya terlihat pada berbagai waktu. (Waktu dalam tanda kurung tidak harus dicetak jelas, itu hanya ada sehingga Anda tahu jam berapa):
Il est sept heures du matin. (7:00 A.M)
Il est deux heures de l'apres-midi. (2:00 P.M)
Il est une heure du matin. (1:00 A.M)
Il est huit heures du soir. (8:00 P.M)
Il est midi. (12:00 P.M, Noon)
Il est minuit. (12:00 A.M, Midnight)
Il est cinq heures vingt du soir. (5:20 P.M)
Il est six heures et quart du matin. (6:15 A.M)
Il est neuf heures et demi du matin. (9:30 A.M)
Il est quatre heures moins dix de l'apres-midi. (3:50 P.M, not 4:50!)
Il est midi moins le quart. (11:45 A.M)
Ini kode-golf, jadi kode terpendek menang. Semoga berhasil!
EDIT: Periode diperlukan.
sumber
Il est huit heures quarante et une du matin
(benar) atauIl est neuf heures moins dix-neuf du matin
(terdengar aneh)?après-midi
? Bisakah kita?Jawaban:
PHP -
521473 byteSaya telah menambahkan beberapa baris baru untuk keterbacaan:
Metode yang digunakan untuk mengonversi angka menjadi angka dalam bahasa Prancis diilhami oleh jawaban ini pada tantangan lain oleh edc65 .
Ini adalah versi yang tidak disunat:
sumber
Python 3,
586547556506505502498497493 BytesUpaya pertamaku dalam bermain golf. Saya benar-benar tidak yakin dengan cara saya memilih, terutama
n
daftar. Tetapi saya ingin mencobanya.Tidak Disatukan:
sumber
'minuit#une#deux#...#vingt-neuf#et demi'.split('#')
. Mungkin lebih pendek untuk hanya memadatkan string.Javascript (ES6),
506495 byteSunting: Terkompresi
a
untuk menyimpan beberapa byte.Penjelasan:
sumber
C,
860 835794 byteBenar-benar menghebohkan, tetapi mungkin bisa dibuat lebih pendek. Banyak baris baru ditambahkan untuk tujuan pemformatan di situs ini. Kode sumber aktual memiliki baris baru setelah #include dan #defines, tetapi semuanya mulai dari char * ke w terakhir (". \ N");} semuanya dalam satu baris. Saya memperpendeknya dengan menghapus nilai dari 22, ..., 29 dalam array string, alih-alih menggunakan kembali string untuk 2, ..., 9 dan menambahkan sebuah "vingt-" saat yang tepat. (Saya benar-benar berharap saya tidak memperkenalkan bug!)
Seperti ini:
Versi tidak dikolomisasi, tanpa "optimasi ruang" (juga sangat jelek):
(Item # jika 0 hanya untuk menguji nilai waktu yang berbeda melalui baris perintah).
sumber