+/{13∊⍎,⍉3↑¯5↑⍉2↓cal⍵}¨⎕,¨⍳12
Probieren Sie es online!
⍳ 12 die ganzen Zahlen eins bis zwölf
⎕ ,¨ Nehmen Sie die numerische Eingabe und stellen Sie jede der zwölf Zahlen voran
{… Wende }¨ auf jedes der Paare die Funktion an…
cal⍵ Holen Sie sich einen Kalender für das Jahr-Monat
2 ↓ Füge zwei Zeilen ein (Beschriftung und Tage)
⍉ transponieren (damit wir Spalten statt Zeilen ansprechen können)
¯5 ↑ nimm die letzten fünf (jeweils zwei Ziffern für Freitag und Samstag plus ein Leerzeichen)
3 ↑ nimm die ersten zwei (zwei Ziffern für Freitag plus ein Leerzeichen)
⍉ transponieren (so bekommen wir Lesereihenfolge)
, ravel
⍎ Als APL-Ausdruck ausführen (Liste der Freitagsdaten)
13 ∊ Ist 13 ein Mitglied dieser Liste?
+/ summiere die 12 Booleschen
Mit dem @ Wrzlprmft-Algorithmus können wir 53 Bytes lang ohne Bibliotheken arbeiten:
'21232211321211'⊃⍨14|2 3 ¯1+.×⊢,0≠.=400 100 4∘.|-∘0 1
-∘0 1 subtrahieren Sie null und eins
400 100 4 ∘.| Divisionsresttabelle für die zwei Jahre (quer) geteilt durch diese Zahlen (runter)
0 ≠.= inneres "Produkt" mit 0, aber mit ≠ und = anstelle von +. ×
⊢ , stellen Sie das nicht geänderte Argument Jahr voran
2 3 ¯1 +.× inneres Produkt mit diesen Zahlen
14 | Division Rest, wenn durch vierzehn geteilt
'21232211321211' ⌷⍨ Index in diese Zeichenfolge