+/{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