summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/lualatex/simurgh/simurgh-jalalical.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/lualatex/simurgh/simurgh-jalalical.sty')
-rw-r--r--Master/texmf-dist/tex/lualatex/simurgh/simurgh-jalalical.sty176
1 files changed, 176 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/lualatex/simurgh/simurgh-jalalical.sty b/Master/texmf-dist/tex/lualatex/simurgh/simurgh-jalalical.sty
new file mode 100644
index 00000000000..e7bfe33649d
--- /dev/null
+++ b/Master/texmf-dist/tex/lualatex/simurgh/simurgh-jalalical.sty
@@ -0,0 +1,176 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{simurgh-jalalical}[2013/12/01 v0.01a jalali calendar]
+% jalali calendar needs to be done entirely in lua
+\newif\ifsimurgh@leap \newif\ifsimurgh@kabiseh
+\newcount\simurgh@i \newcount\simurgh@year \newcount\simurgh@month \newcount\simurgh@day
+\newcount\simurgh@latini \newcount\simurgh@jalalii
+\newcount\simurgh@latinii \newcount\simurgh@jalaliii
+\newcount\simurgh@latiniii \newcount\simurgh@jalaliiii
+\newcount\simurgh@latiniv \newcount\simurgh@jalaliiv
+\newcount\simurgh@latinv \newcount\simurgh@jalaliv
+\newcount\simurgh@latinvi \newcount\simurgh@jalalivi
+\newcount\simurgh@latinvii \newcount\simurgh@jalalivii
+\newcount\simurgh@latinviii \newcount\simurgh@jalaliviii
+\newcount\simurgh@latinix \newcount\simurgh@jalaliix
+\newcount\simurgh@latinx \newcount\simurgh@jalalix
+\newcount\simurgh@latinxi \newcount\simurgh@jalalixi
+\newcount\simurgh@latinxii \newcount\simurgh@jalalixii
+ \newcount\simurgh@jalalixiii
+
+\newcount\simurgh@temp
+\newcount\simurgh@temptwo
+\newcount\simurgh@tempthree
+\newcount\simurgh@yearModHundred
+\newcount\simurgh@thirtytwo
+\newcount\simurgh@dayn
+\newcount\simurgh@sn
+\newcount\simurgh@monthminusone
+
+\simurgh@year=\year \simurgh@month=\month \simurgh@day=\day
+\simurgh@temp=\simurgh@year
+\divide\simurgh@temp by 100\relax
+\multiply\simurgh@temp by 100\relax
+\simurgh@yearModHundred=\simurgh@year
+\advance\simurgh@yearModHundred by -\simurgh@temp\relax
+\ifodd\simurgh@yearModHundred
+ \simurgh@leapfalse
+\else
+ \simurgh@temp=\simurgh@yearModHundred
+ \divide\simurgh@temp by 2\relax
+ \ifodd\simurgh@temp\simurgh@leapfalse
+ \else
+ \ifnum\simurgh@yearModHundred=0%
+ \simurgh@temp=\simurgh@year
+ \divide\simurgh@temp by 400\relax
+ \multiply\simurgh@temp by 400\relax
+ \ifnum\simurgh@year=\simurgh@temp\simurgh@leaptrue\else\simurgh@leapfalse\fi
+ \else\simurgh@leaptrue
+ \fi
+ \fi
+\fi
+\simurgh@latini=31\relax
+\ifsimurgh@leap
+ \simurgh@latinii = 29\relax
+\else
+ \simurgh@latinii = 28\relax
+\fi
+\simurgh@latiniii = 31\relax
+\simurgh@latiniv = 30\relax
+\simurgh@latinv = 31\relax
+\simurgh@latinvi = 30\relax
+\simurgh@latinvii = 31\relax
+\simurgh@latinviii = 31\relax
+\simurgh@latinix = 30\relax
+\simurgh@latinx = 31\relax
+\simurgh@latinxi = 30\relax
+\simurgh@latinxii = 31\relax
+\simurgh@thirtytwo=32\relax
+\simurgh@temp=\simurgh@year
+\advance\simurgh@temp by -17\relax
+\simurgh@temptwo=\simurgh@temp
+\divide\simurgh@temptwo by 33\relax
+\multiply\simurgh@temptwo by 33\relax
+\advance\simurgh@temp by -\simurgh@temptwo
+\ifnum\simurgh@temp=\simurgh@thirtytwo\simurgh@kabisehfalse
+\else
+ \simurgh@temptwo=\simurgh@temp
+ \divide\simurgh@temptwo by 4\relax
+ \multiply\simurgh@temptwo by 4\relax
+ \advance\simurgh@temp by -\simurgh@temptwo
+ \ifnum\simurgh@temp=\z@\simurgh@kabisehtrue\else\simurgh@kabisehfalse\fi
+\fi
+\simurgh@tempthree=\simurgh@year % Number of Leap years
+\advance\simurgh@tempthree by -1
+\simurgh@temp=\simurgh@tempthree % T := (MY-1) div 4
+\divide\simurgh@temp by 4\relax
+\simurgh@temptwo=\simurgh@tempthree % T := T - ((MY-1) div 100)
+\divide\simurgh@temptwo by 100\relax
+\advance\simurgh@temp by -\simurgh@temptwo
+\simurgh@temptwo=\simurgh@tempthree % T := T + ((MY-1) div 400)
+\divide\simurgh@temptwo by 400\relax
+\advance\simurgh@temp by \simurgh@temptwo
+\advance\simurgh@tempthree by -611 % Number of Kabise years
+\simurgh@temptwo=\simurgh@tempthree % T := T - ((SY+10) div 33) * 8
+\divide\simurgh@temptwo by 33\relax
+\multiply\simurgh@temptwo by 8\relax
+\advance\simurgh@temp by -\simurgh@temptwo
+\simurgh@temptwo=\simurgh@tempthree %
+\divide\simurgh@temptwo by 33\relax
+\multiply\simurgh@temptwo by 33\relax
+\advance\simurgh@tempthree by -\simurgh@temptwo
+\ifnum\simurgh@tempthree=32\advance\simurgh@temp by 1\fi % if (SY+10) mod 33=32 then Inc(T);
+\divide\simurgh@tempthree by 4\relax % T := T - ((SY+10) mod 33) div 4
+\advance\simurgh@temp by -\simurgh@tempthree
+\advance\simurgh@temp by -137 % T := T - 137 Adjust the value
+\simurgh@jalalii=31
+\advance\simurgh@jalalii by -\simurgh@temp % now 31 - T is the jalalii
+\simurgh@jalaliii = 30\relax
+\ifsimurgh@kabiseh
+ \simurgh@jalaliiii = 30\relax
+\else
+ \simurgh@jalaliiii = 29\relax
+\fi
+\simurgh@jalaliiv = 31\relax
+\simurgh@jalaliv = 31\relax
+\simurgh@jalalivi = 31\relax
+\simurgh@jalalivii = 31\relax
+\simurgh@jalaliviii= 31\relax
+\simurgh@jalaliix = 31\relax
+\simurgh@jalalix = 30\relax
+\simurgh@jalalixi = 30\relax
+\simurgh@jalalixii = 30\relax
+\simurgh@jalalixiii= 30\relax
+\simurgh@dayn= 0\relax
+\simurgh@sn= 0\relax
+\simurgh@monthminusone=\simurgh@month
+\advance\simurgh@monthminusone by -1\relax
+\simurgh@i=0\relax
+\ifnum\simurgh@i < \simurgh@monthminusone
+\loop
+\advance \simurgh@i by 1\relax
+\advance\simurgh@dayn by \csname simurgh@latin\romannumeral\the\simurgh@i\endcsname
+\ifnum\simurgh@i<\simurgh@monthminusone \repeat
+\fi
+\advance \simurgh@dayn by \simurgh@day
+\simurgh@i=1\relax
+\simurgh@sn = \simurgh@jalalii
+\ifnum \simurgh@sn<\simurgh@dayn
+\loop
+\advance \simurgh@i by 1\relax
+\advance\simurgh@sn by \csname simurgh@jalali\romannumeral\the\simurgh@i\endcsname
+\ifnum \simurgh@sn<\simurgh@dayn \repeat
+\fi
+\ifnum \simurgh@i < 4
+ \simurgh@month = 9 \advance\simurgh@month by \simurgh@i
+ \advance \simurgh@year by -622\relax
+\else
+ \simurgh@month = \simurgh@i \advance \simurgh@month by -3\relax
+ \advance \simurgh@year by -621\relax
+\fi
+\advance\simurgh@sn by -\csname simurgh@jalali\romannumeral\the\simurgh@i%
+\endcsname
+\ifnum\simurgh@i = 1
+ \simurgh@day = \simurgh@dayn \advance \simurgh@day by 30 \advance\simurgh@day by -\simurgh@jalalii
+\else
+ \simurgh@day = \simurgh@dayn \advance \simurgh@day by -\simurgh@sn
+\fi
+\newcommand*{\jalalitoday}{%
+\number\simurgh@day\space%
+\simurgh@jalali@month{\simurgh@month}\space\number\simurgh@year%
+}
+\let\jalaliyear\simurgh@year
+\let\jalalimonth\simurgh@month
+\let\jalaliday\simurgh@day
+\def\simurgh@jalali@month#1{\ifcase#1\or فروردین\or
+اردیبهشت\or
+خرداد\or تیر\or
+مرداد\or
+شهریور\or مهر\or
+آبان\or آذر\or
+دی\or بهمن\or
+اسفند\fi}
+
+\let\simurgh@ltx@today\today
+\def\gregoriantoday{\ensurelatintext{\simurgh@ltx@today}}
+\def\today{\ensureparsitext{\jalalitoday}}
+\endinput \ No newline at end of file