Python 3, 66 63 byte
Nhờ các ý tưởng từ các câu trả lời JavaScript / ES ở đây, tôi đã quản lý để nén một số byte. Lập chỉ mục một từ điển - các khóa không tồn tại sẽ tăng a KeyError
. Đoạn mã sau hoạt động theo múi giờ địa phương
import time;print({1:'Merry Christmas'}['c 25'in time.ctime()])
Định dạng đầu ra ctime
không phụ thuộc vào miền địa phương - định dạng luôn ~ 'Sun Dec 25 19:23:05 2016'
. Vì chỉ trong tháng 12, chữ viết tắt 3 ký tự kết thúc c
, nên sử dụng 'c 25'in time.ctime()
ở đây là an toàn .
Phiên bản trước:
Điều này hoạt động trong múi giờ UTC. Đối với múi giờ địa phương, người ta cần s/gm/local
thêm 3 byte. Đối với Python 2, người ta có thể loại bỏ dấu ngoặc đơn từ print
65 byte.
import time;print({(12,25):'Merry Christmas'}[time.gmtime()[1:3]])
Cấu trúc ném KeyError
vào các ngày khác:
>>> import time;print({(1,1):'Happy New Year'}[time.gmtime()[1:3]])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: (12, 25)