+/{13∊⍎,⍉3↑¯5↑⍉2↓cal⍵}¨⎕,¨⍳12
Hãy thử trực tuyến!
⍳ 12 các số nguyên từ một đến mười hai
⎕ ,¨ lấy đầu vào số và thêm vào mỗi mười hai số
{... }¨ trên mỗi cặp, áp dụng các chức năng ...
cal⍵ lấy lịch cho tháng đó
2 ↓ thả hai hàng (chú thích và ngày)
⍉ hoán vị (để chúng ta có thể giải quyết các cột thay vì các hàng)
¯5 ↑ lấy năm số cuối (hai chữ số cho mỗi thứ Sáu và thứ Bảy cộng với một khoảng trắng)
3 ↑ lấy hai số đầu tiên (hai chữ số cho thứ Sáu cộng với một khoảng trắng)
⍉ hoán vị (để chúng ta có được thứ tự đọc)
, rốn
⍎ thực hiện dưới dạng biểu thức APL (đưa ra danh sách các ngày thứ Sáu)
13 ∊ mười ba là thành viên của danh sách đó?
+/ tổng cộng 12 Booleans
Sử dụng thuật toán của @ Wrzlprmft , chúng tôi có thể làm điều đó mà không cần thư viện cho 53 byte:
'21232211321211'⊃⍨14|2 3 ¯1+.×⊢,0≠.=400 100 4∘.|-∘0 1
-∘0 1 trừ 0 và 1
400 100 4 ∘.| bảng phân chia còn lại trong hai năm (qua) chia cho các số này (xuống)
0 ≠.= "sản phẩm" bên trong có 0, nhưng sử dụng và = thay vì +. ×
⊢ , chuẩn bị năm đối số không thay đổi
2 3 ¯1 +.× sản phẩm bên trong với những con số này
14 | phần còn lại khi chia cho mười bốn
'21232211321211' ⌷⍨ lập chỉ mục vào chuỗi này