Skip to content

Commit

Permalink
arabic (ar): islamic-umalqura.
Browse files Browse the repository at this point in the history
  • Loading branch information
Javier committed May 26, 2022
1 parent b8d2f78 commit 583fab7
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 20 deletions.
4 changes: 2 additions & 2 deletions README.md
@@ -1,4 +1,4 @@
## Babel 3.75.2747
## Babel 3.75.2749

*(Development)*

Expand Down Expand Up @@ -49,7 +49,7 @@ respective authors.
### Summary of latest changes
```
3.75 (dev)
* Start calendars.
* Start calendars: islamic-civil, islamic-umalqura
3.75 2022-05-22
* `\BabelEnsureInfo` is active by default, to make sure the BCP 47
Expand Down
34 changes: 18 additions & 16 deletions babel.dtx
Expand Up @@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
\ProvidesFile{babel.dtx}[2022/05/24 v3.75.2747 The Babel package]
\ProvidesFile{babel.dtx}[2022/05/26 v3.75.2749 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
Expand Down Expand Up @@ -5143,8 +5143,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
%<<version=3.75.2747>>
%<<date=2022/05/24>>
%<<version=3.75.2749>>
%<<date=2022/05/26>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
Expand Down Expand Up @@ -10801,19 +10801,21 @@ help from Bernd Raichle, for which I am grateful.
% little library |calendar.js|, by John Walker, in the public domain.
%
% \begin{macrocode}
\ExplSyntaxOn
\def\bbl@fpmod#1#2{(#1-#2*floor(#1/#2))}
\def\bbl@cs@gregleap#1{%
(\bbl@fpmod{#1}{4} == 0) &&
(!((\bbl@fpmod{#1}{100} == 0) && (\bbl@fpmod{#1}{400} != 0)))}
\def\bbl@ca@jd#1#2#3{% year, month, day
\fp_eval:n{ 1721424.5 + (365 * (#1 - 1)) +
floor((#1 - 1) / 4) + (-floor((#1 - 1) / 100)) +
floor((#1 - 1) / 400) + floor((((367 * #2) - 362) / 12) +
((#2 <= 2) ? 0 : (\bbl@cs@gregleap{#1} ? -1 : -2)) + #3) }}
\newcommand\babelcalendar[2][\the\year-\the\month-\the\day]{%
\@nameuse{bbl@ca@#2}#1\@@}
\ExplSyntaxOff
\ifx\ExplSyntaxOn\@undefined\else
\ExplSyntaxOn
\def\bbl@fpmod#1#2{(#1-#2*floor(#1/#2))}
\def\bbl@cs@gregleap#1{%
(\bbl@fpmod{#1}{4} == 0) &&
(!((\bbl@fpmod{#1}{100} == 0) && (\bbl@fpmod{#1}{400} != 0)))}
\def\bbl@ca@jd#1#2#3{% year, month, day
\fp_eval:n{ 1721424.5 + (365 * (#1 - 1)) +
floor((#1 - 1) / 4) + (-floor((#1 - 1) / 100)) +
floor((#1 - 1) / 400) + floor((((367 * #2) - 362) / 12) +
((#2 <= 2) ? 0 : (\bbl@cs@gregleap{#1} ? -1 : -2)) + #3) }}
\newcommand\babelcalendar[2][\the\year-\the\month-\the\day]{%
\@nameuse{bbl@ca@#2}#1\@@}
\ExplSyntaxOff
\fi
% \end{macrocode}
%
%
Expand Down
2 changes: 1 addition & 1 deletion babel.ins
Expand Up @@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
\def\filedate{2022/05/24}
\def\filedate{2022/05/26}
\def\batchfile{babel.ins}
\input docstrip.tex

Expand Down
Binary file modified babel.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion bbcompat.dtx
Expand Up @@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
\ProvidesFile{bbcompat.dtx}[2022/05/24 v3.75.2747]
\ProvidesFile{bbcompat.dtx}[2022/05/26 v3.75.2749]
%</dtx>
%
%% File 'bbcompat.dtx'
Expand Down
57 changes: 57 additions & 0 deletions locale/ar/babel-arabic.tex
Expand Up @@ -12,6 +12,8 @@

\ExplSyntaxOn

% == islamic-civil ==

\def\bbl@cs@isltojd#1#2#3{ % year, month, day
((#3 + ceil(29.5 * (#2 - 1)) +
(#1 - 1) * 354 + floor((3 + (11 * #1)) / 30) +
Expand All @@ -32,6 +34,61 @@
min(12,ceil((\bbl@tempa-(29+\bbl@cs@isltojd{#5}{1}{1}))/29.5)+1) }}%
\edef#7{\fp_eval:n{ \bbl@tempa - \bbl@cs@isltojd{#5}{#6}{1} + 1} }}

% == islamic-umalqura ==

% Data covers Hijri ~1435/~1460 (Gregorian ~2014/~2038)
\def\bbl@ca@umalqura@data{56660, 56690,56719,56749,56778,56808,%
56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,%
57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,%
57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,%
57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,%
58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,%
58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,%
58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,%
58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,%
59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,%
59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,%
59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,%
60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,%
60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,%
60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,%
60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,%
61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,%
61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,%
61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,%
62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,%
62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,%
62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,%
63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,%
63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,%
63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,%
63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,%
64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,%
64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,%
64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,%
65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,%
65401,65431,65460,65490,65520}

\@namedef{bbl@ca@islamic-umalqura+}{\bbl@ca@islamcuqr@x{+1}}
\@namedef{bbl@ca@islamic-umalqura}{\bbl@ca@islamcuqr@x{}}
\@namedef{bbl@ca@islamic-umalqura-}{\bbl@ca@islamcuqr@x{-1}}

\def\bbl@ca@islamcuqr@x#1#2-#3-#4\@@#5#6#7{%
\edef\bbl@tempd{\fp_eval:n{ % (Julian) day
\bbl@ca@jd{#2}{#3}{#4} + 0.5 - 2400000 #1}}%
\count@\@ne
\bbl@foreach\bbl@ca@umalqura@data{%
\advance\count@\@ne
\ifnum##1>\bbl@tempd\else
\edef\bbl@tempe{\the\count@}%
\edef\bbl@tempb{##1}%
\fi}%
\edef\bbl@templ{\fp_eval:n{ \bbl@tempe + 16260 + 949 }}% month~lunar
\edef\bbl@tempa{\fp_eval:n{ floor((\bbl@templ - 1 ) / 12) }}% annus
\edef#5{\fp_eval:n{ \bbl@tempa + 1 }}%
\edef#6{\fp_eval:n{ \bbl@templ - (12 * \bbl@tempa) }}%
\edef#7{\fp_eval:n{ \bbl@tempd - \bbl@tempb + 1 }}}

\ExplSyntaxOff

\endinput

0 comments on commit 583fab7

Please sign in to comment.