Setelah menerima bulan dan tahun dalam format YYYYMM, hasilkan bulan kalender terkait untuk tahun itu.
Misalnya input 201312
harus menghasilkan output berikut:
Mo Tu We Th Fr Sa Su
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Satu-satunya trik adalah, TIDAK ada fungsi menghasilkan kalender asli ... jadi klon Linux, tidak ada fungsi "cal" ... Muahahahahah!
PS: Kalender harus dimulai dengan hari Senin sebagai hari paling kiri, ini untuk memastikan bahwa outputnya seperti fungsi "cal", tetapi tidak menampilkan seperti "cal", yang menjadikan hari Minggu sebagai hari paling kiri. ..
Ukuran kode terkecil menang.
Jawaban:
Python 2.7 - 152
Sayangnya gagal untuk September 1752 . Memang, itu mengimpor semua fungsi kalender, tetapi hanya menggunakan 1, dan itu hanya mengembalikan hari awal minggu dan jumlah hari.
Kode yang relatif standar, tetapi ini adalah bit favorit saya:
Ini mencetak baris baru menggunakan perkalian string, jika jumlah hari saat ini dan hari mulai minggu adalah Minggu (misalnya 7) karena boolean dilemparkan ke bilangan bulat.
Ini menyimpan karakter lebih intuitif
x%7==0
dengan menggunakanx%7<1
sebagai gantinya.Hasil tes:
sumber
52.times
dilakukan? Ini bukan multiplikasi?n.times{...}
identik dengan(0...n).each{...}
atau0.upto(n-1){...}
. Perkalian akan menjadi52 * ...
Rubi,
170168 karakterPerbaikan bug: tidak memerlukan pustaka yang diperlukan (+16) menggunakan julian date modulo 7 alih-alih hari kerja saat ini secara langsung (-3)
digunakan / 100 dan% 100 untuk mengurai tanggal alih-alih regex (-13). Diambil dari jawaban LegoStormtroopr.
menghapus tanda kurung di sekitar argumen ke
rjust
danDate.new
(-2)sumber
"#{l[i].to_s.rjust 2} #{?\n if i%7>5}"
dengan"%2s %s"%[l[i],i%7>5?$/:""]
.Mathematica 203
Pengujian
sumber
SmileBASIC, 204 byte
Wow, detektor tahun kabisat itu SANGAT panjang ...
sumber
JavaScript (239)
Keluaran:
sumber
PHP,
153147 bytekerusakan
sumber
C (gcc) , 242 byte
Bukan solusi yang paling elegan, saya kira.
Input dalam bentuk bilangan bulat dengan empat digit tinggi membentuk tahun, dan dua digit rendah bulan.
Cobalah online!
sumber
(13*m+4)/5+y%X*5/4-7*y/X/4
alih-alih1+(26*m-2)/10-2*y/X+5*(y%X)/4+y/X/4