1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
%%
%% This is file `babel-ca-islamic.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% babel.dtx (with options: `ca-islamic')
%%
%%
%% Copyright (C) 2012-2023 Javier Bezos and Johannes L. Braams.
%% Copyright (C) 1989-2012 Johannes L. Braams and
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
%%
%%
%% This file is part of the Babel system.
%% --------------------------------------
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%%
%% The Current Maintainer of this work is Javier Bezos.
%%
%% The list of derived (unpacked) files belonging to the distribution
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension |.ins|) which are part of the distribution.
%%
\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@cs@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) }}
\def\bbl@ca@islamic#1-#2-#3\@@#4#5#6{}
\def\bbl@cs@isltojd#1#2#3{ % year, month, day
((#3 + ceil(29.5 * (#2 - 1)) +
(#1 - 1) * 354 + floor((3 + (11 * #1)) / 30) +
1948439.5) - 1) }
\@namedef{bbl@ca@islamic-civil++}{\bbl@ca@islamicvl@x{+2}}
\@namedef{bbl@ca@islamic-civil+}{\bbl@ca@islamicvl@x{+1}}
\@namedef{bbl@ca@islamic-civil}{\bbl@ca@islamicvl@x{}}
\@namedef{bbl@ca@islamic-civil-}{\bbl@ca@islamicvl@x{-1}}
\@namedef{bbl@ca@islamic-civil--}{\bbl@ca@islamicvl@x{-2}}
\def\bbl@ca@islamicvl@x#1#2-#3-#4\@@#5#6#7{%
\edef\bbl@tempa{%
\fp_eval:n{ floor(\bbl@cs@jd{#2}{#3}{#4})+0.5 #1}}%
\edef#5{%
\fp_eval:n{ floor(((30*(\bbl@tempa-1948439.5)) + 10646)/10631) }}%
\edef#6{\fp_eval:n{
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} }}
\def\bbl@cs@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{%
\ifnum#2>2014 \ifnum#2<2038
\bbl@afterfi\expandafter\@gobble
\fi\fi
{\bbl@error{Year~out~of~range}{The~allowed~range~is~2014-2038}}%
\edef\bbl@tempd{\fp_eval:n{ % (Julian) day
\bbl@cs@jd{#2}{#3}{#4} + 0.5 - 2400000 #1}}%
\count@\@ne
\bbl@foreach\bbl@cs@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
\bbl@add\bbl@precalendar{%
\bbl@replace\bbl@ld@calendar{-civil}{}%
\bbl@replace\bbl@ld@calendar{-umalqura}{}%
\bbl@replace\bbl@ld@calendar{+}{}%
\bbl@replace\bbl@ld@calendar{-}{}}
\endinput
%%
%% End of file `babel-ca-islamic.tex'.
|