OFFSET
1,1
COMMENTS
Uses the Gregorian calendar.
LINKS
Reinhard Zumkeller, Table of n, a(n) for n = 1..3442
J. R. Stockton, Rektor Chr. Zeller's 1886 Paper "Kalender-Formeln" [Wayback Machine link from Felix Fröhlich, Sep 23 2019]
Eric Weisstein's World of Mathematics, Triskaidekaphobia
Wikipedia, Triskaidekaphobia
Chr. Zeller, Kalender-Formeln, Acta Mathematica, 9 (1886), 131-136.
FORMULA
a(2n+1) = a(2n + 1377), a(2n) = a(2n + 1376) + 400. - Charles R Greathouse IV, May 17 2011
EXAMPLE
a(39) = 1, a(40) = 12 -> Jan 2012,
a(41) = 4, a(42) = 12 -> Apr 2012,
a(43) = 7, a(44) = 12 -> Jul 2012,
a(45) = 9, a(46) = 13 -> Sep 2013.
MATHEMATICA
<< Calendar`; {y, m} = {2000, 1}; A157962 = {}; Do[ If[ m == 12, y = y + 1; m = 1, m = m + 1]; If[ DayOfWeek[ {y, m, 13}] == Friday, AppendTo[ A157962, {m , y - 2000}]] , {300}]; Flatten[A157962] (* Jean-François Alcover, Dec 16 2011 *)
Flatten[Table[If[DateValue[{2000+n, m, 13}, "DayName"]==Friday, {m, n}, {}], {n, 0, 25}, {m, 12}]/.{}->Nothing] (* Requires Mathematica version 10 or later *) (* Harvey P. Dale, May 10 2017 *)
PROG
(VBA) jo = 6 For a = 2000 To 2399 For b = 1 To 31 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And b = 13 Then ll = ll + 1: Cells(ll, 1) = 1: Cells(ll, 2) = a - 2000 Next b If a - 4 * Int(a / 4) = 0 Then GoTo 10 For c = 1 To 28 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And c = 13 Then ll = ll + 1: Cells(ll, 1) = 2: Cells(ll, 2) = a - 2000 Next c GoTo 20 10 For c = 1 To 29 jo = jo + 1: If jo = 7
Then jo = 0 If jo = 6 And c = 13 Then ll = ll + 1: Cells(ll, 1) = 2: Cells(ll, 2) = a - 2000 Next c 20 For d = 1 To 31 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And d = 13 Then ll = ll + 1: Cells(ll, 1) = 3: Cells(ll, 2) = a - 2000 Next d For e = 1 To 30 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And e = 13 Then ll = ll + 1: Cells(ll, 1) = 4: Cells(ll, 2) = a - 2000 Next e For f = 1 To 31 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And f = 13 Then ll = ll + 1: Cells(ll, 1) = 5: Cells(ll, 2) = a - 2000 Next f For g = 1 To 30 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And g = 13 Then ll = ll + 1: Cells(ll, 1) = 6: Cells(ll, 2) = a - 2000 Next g For h = 1 To 31 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And h = 13 Then ll = ll + 1: Cells(ll, 1) = 7: Cells(ll, 2) = a - 2000 Next h For i = 1 To 31 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And i = 13
Then ll = ll + 1: Cells(ll, 1) = 8: Cells(ll, 2) = a - 2000 Next i For j = 1 To 30 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And j = 13 Then ll = ll + 1: Cells(ll, 1) = 9: Cells(ll, 2) = a - 2000 Next j For k = 1 To 31 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And k = 13 Then ll = ll + 1: Cells(ll, 1) = 10: Cells(ll, 2) = a - 2000 Next k For l = 1 To 30 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And l = 13 Then ll = ll + 1: Cells(ll, 1) = 11: Cells(ll, 2) = a - 2000 Next l For m = 1 To 31 jo = jo + 1: If jo = 7 Then jo = 0 If jo = 6 And m = 13 Then ll = ll + 1: Cells(ll, 1) = 12: Cells(ll, 2) = a - 2000 Next m Next a End Sub
(Haskell)
a157962 n = a157962_list !! (n-1)
a157962_list = concat $ map (t 1 {- January -}) [0..] where
t 13 _ = []
t m n | h (n+2000) m 13 == 6 = m : n : t (succ m) n
| otherwise = t (succ m) n
h year month day -- cf. Zeller reference.
| month <= 2 = h (year - 1) (month + 12) day
| otherwise = (day + 26 * (month + 1) `div` 10 + y + y `div` 4
+ century `div` 4 - 2 * century) `mod` 7
where (century, y) = divMod year 100
-- Reinhard Zumkeller, May 17 2011
CROSSREFS
KEYWORD
nonn,tabf,easy
AUTHOR
Pierre CAMI, Mar 10 2009
STATUS
approved