This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A057348 #28 Jan 31 2023 08:46:15 %S A057348 30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30, %T A057348 30,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29,30,29, %U A057348 30,29,30,29,30,29,30,29,30,29,30,29,30,30,30,29,30,29,30,29,30,29,30 %N A057348 Days in months in the Islamic calendar starting from Muharram, 1 AH. The twelfth month has 30 days in a leap year. %C A057348 The months' names are Muharram, Safar, Rabi I, Rabi II, Jumada I, Jumada II, Rajab, Shaban, Ramadan, Shawwal, Dhu al-Qada, Dhu al-Hijja. The year, 354 11/30 days long, is defined as 12 lunar months and so travels around the solar year. %C A057348 Periodic with period 360; the average month length is 29 + 191/360 = 29.530555... days. This is about 0.000032425 days shorter than the synodic month. - _Charles R Greathouse IV_, Mar 28 2016 %C A057348 Worldwide, five different Islamic leap-year cycles are currently in use; the month lengths a(n) correspond to the most common leap-year sequence (called "Fazari"). See A350539. - _Robert B Fowler_, Dec 07 2022 %D A057348 N. Dershowitz and E. M. Reingold, Calendrical Calculations, Cambridge University Press, 1997. %H A057348 E. G. Richards, <a href="/A057348/a057348.txt">Collected algorithms from Mapping Time</a>. The Calendar and its History, Oxford University Press 1999, (with corrections). %H A057348 <a href="/index/Rec#order_360">Index entries for linear recurrences with constant coefficients</a>, order 360. %F A057348 From _Robert B Fowler_, Dec 07 2022: (Start) %F A057348 y = floor((n-1)/12) + 1 (Islamic year number) %F A057348 m = ((n-1) mod 12) + 1 (Islamic month number) %F A057348 a(n) = 29 + (m mod 2) + floor(m/12)*(floor((11*(y+1)+3)/30) - floor((11*y+3)/30)). (End) %p A057348 isIslamicLeapYear := year -> irem(11 * year + 14, 30) < 11: %p A057348 LastDayOfIslamicMonth := (year, month) -> if irem(month, 2) = 1 or (month = 12 and isIslamicLeapYear(year)) then 30 else 29 fi: %p A057348 seq(seq(LastDayOfIslamicMonth(year, month), month=1..12), year = 1..5); %p A057348 # _Peter Luschny_, Jan 07 2022 %t A057348 If[Mod[n, 2]==1, 30, If[Mod[n, 12]!=0, 29, If[Mod[14+11(Floor[(n-1)/12]+1), 30]<11, 30, 29]]] %o A057348 (PARI) a(n)=if(n%2,30,n%12,29,(n/12*11+14)%30<11,30,29) \\ _Charles R Greathouse IV_, Mar 28 2016 %Y A057348 Cf. A057347, A350539. %K A057348 nonn,easy %O A057348 1,1 %A A057348 _Mitch Harris_