diff options
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/xepersian/xepersian-persiancal.sty')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/xepersian/xepersian-persiancal.sty | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/xelatex/xepersian/xepersian-persiancal.sty b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-persiancal.sty new file mode 100644 index 00000000000..c3ed422f0d6 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/xepersian/xepersian-persiancal.sty @@ -0,0 +1,197 @@ +%% +%% This is file `xepersian-persiancal.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xepersian.dtx (with options: `xepersian-persiancal.sty') +%% +%% __________________________________ +%% Copyright © 2008-2009 Vafa Khalighi +%% +%% License information appended. +%% +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{xepersian-persiancal} + +\newif\ifXePersian@leap \newif\ifXePersian@kabiseh +\newcount\XePersian@i \newcount\XePersian@y \newcount\XePersian@m \newcount\XePersian@d +\newcount\XePersian@latini \newcount\XePersian@persiani +\newcount\XePersian@latinii \newcount\XePersian@persianii +\newcount\XePersian@latiniii \newcount\XePersian@persianiii +\newcount\XePersian@latiniv \newcount\XePersian@persianiv +\newcount\XePersian@latinv \newcount\XePersian@persianv +\newcount\XePersian@latinvi \newcount\XePersian@persianvi +\newcount\XePersian@latinvii \newcount\XePersian@persianvii +\newcount\XePersian@latinviii \newcount\XePersian@persianviii +\newcount\XePersian@latinix \newcount\XePersian@persianix +\newcount\XePersian@latinx \newcount\XePersian@persianx +\newcount\XePersian@latinxi \newcount\XePersian@persianxi +\newcount\XePersian@latinxii \newcount\XePersian@persianxii + \newcount\XePersian@persianxiii + +\newcount\XePersian@temp +\newcount\XePersian@temptwo +\newcount\XePersian@tempthree +\newcount\XePersian@yModHundred +\newcount\XePersian@thirtytwo +\newcount\XePersian@dn +\newcount\XePersian@sn +\newcount\XePersian@mminusone + +\def\persiantoday{% +\XePersian@y=\year \XePersian@m=\month \XePersian@d=\day +\XePersian@temp=\XePersian@y +\divide\XePersian@temp by 100\relax +\multiply\XePersian@temp by 100\relax +\XePersian@yModHundred=\XePersian@y +\advance\XePersian@yModHundred by -\XePersian@temp\relax +\ifodd\XePersian@yModHundred + \XePersian@leapfalse +\else + \XePersian@temp=\XePersian@yModHundred + \divide\XePersian@temp by 2\relax + \ifodd\XePersian@temp\XePersian@leapfalse + \else + \ifnum\XePersian@yModHundred=0% + \XePersian@temp=\XePersian@y + \divide\XePersian@temp by 400\relax + \multiply\XePersian@temp by 400\relax + \ifnum\XePersian@y=\XePersian@temp\XePersian@leaptrue\else\XePersian@leapfalse\fi + \else\XePersian@leaptrue + \fi + \fi +\fi +\XePersian@latini=31\relax +\ifXePersian@leap + \XePersian@latinii = 29\relax +\else + \XePersian@latinii = 28\relax +\fi +\XePersian@latiniii = 31\relax +\XePersian@latiniv = 30\relax +\XePersian@latinv = 31\relax +\XePersian@latinvi = 30\relax +\XePersian@latinvii = 31\relax +\XePersian@latinviii = 31\relax +\XePersian@latinix = 30\relax +\XePersian@latinx = 31\relax +\XePersian@latinxi = 30\relax +\XePersian@latinxii = 31\relax +\XePersian@thirtytwo=32\relax +\XePersian@temp=\XePersian@y +\advance\XePersian@temp by -17\relax +\XePersian@temptwo=\XePersian@temp +\divide\XePersian@temptwo by 33\relax +\multiply\XePersian@temptwo by 33\relax +\advance\XePersian@temp by -\XePersian@temptwo +\ifnum\XePersian@temp=\XePersian@thirtytwo\XePersian@kabisehfalse +\else + \XePersian@temptwo=\XePersian@temp + \divide\XePersian@temptwo by 4\relax + \multiply\XePersian@temptwo by 4\relax + \advance\XePersian@temp by -\XePersian@temptwo + \ifnum\XePersian@temp=\z@\XePersian@kabisehtrue\else\XePersian@kabisehfalse\fi +\fi +\XePersian@tempthree=\XePersian@y % Number of Leap years +\advance\XePersian@tempthree by -1 +\XePersian@temp=\XePersian@tempthree % T := (MY-1) div 4 +\divide\XePersian@temp by 4\relax +\XePersian@temptwo=\XePersian@tempthree % T := T - ((MY-1) div 100) +\divide\XePersian@temptwo by 100\relax +\advance\XePersian@temp by -\XePersian@temptwo +\XePersian@temptwo=\XePersian@tempthree % T := T + ((MY-1) div 400) +\divide\XePersian@temptwo by 400\relax +\advance\XePersian@temp by \XePersian@temptwo +\advance\XePersian@tempthree by -611 % Number of Kabise years +\XePersian@temptwo=\XePersian@tempthree % T := T - ((SY+10) div 33) * 8 +\divide\XePersian@temptwo by 33\relax +\multiply\XePersian@temptwo by 8\relax +\advance\XePersian@temp by -\XePersian@temptwo +\XePersian@temptwo=\XePersian@tempthree % +\divide\XePersian@temptwo by 33\relax +\multiply\XePersian@temptwo by 33\relax +\advance\XePersian@tempthree by -\XePersian@temptwo +\ifnum\XePersian@tempthree=32\advance\XePersian@temp by 1\fi % if (SY+10) mod 33=32 then Inc(T); +\divide\XePersian@tempthree by 4\relax % T := T - ((SY+10) mod 33) div 4 +\advance\XePersian@temp by -\XePersian@tempthree +\advance\XePersian@temp by -137 % T := T - 137 Adjust the value +\XePersian@persiani=31 +\advance\XePersian@persiani by -\XePersian@temp % now 31 - T is the persiani +\XePersian@persianii = 30\relax +\ifXePersian@kabiseh + \XePersian@persianiii = 30\relax +\else + \XePersian@persianiii = 29\relax +\fi +\XePersian@persianiv = 31\relax +\XePersian@persianv = 31\relax +\XePersian@persianvi = 31\relax +\XePersian@persianvii = 31\relax +\XePersian@persianviii= 31\relax +\XePersian@persianix = 31\relax +\XePersian@persianx = 30\relax +\XePersian@persianxi = 30\relax +\XePersian@persianxii = 30\relax +\XePersian@persianxiii= 30\relax +\XePersian@dn= 0\relax +\XePersian@sn= 0\relax +\XePersian@mminusone=\XePersian@m +\advance\XePersian@mminusone by -1\relax +\XePersian@i=0\relax +\ifnum\XePersian@i < \XePersian@mminusone +\loop +\advance \XePersian@i by 1\relax +\advance\XePersian@dn by \csname XePersian@latin\romannumeral\the\XePersian@i\endcsname +\ifnum\XePersian@i<\XePersian@mminusone \repeat +\fi +\advance \XePersian@dn by \XePersian@d +\XePersian@i=1\relax +\XePersian@sn = \XePersian@persiani +\ifnum \XePersian@sn<\XePersian@dn +\loop +\advance \XePersian@i by 1\relax +\advance\XePersian@sn by \csname XePersian@persian\romannumeral\the\XePersian@i\endcsname +\ifnum \XePersian@sn<\XePersian@dn \repeat +\fi +\ifnum \XePersian@i < 4 + \XePersian@m = 9 \advance\XePersian@m by \XePersian@i + \advance \XePersian@y by -622\relax +\else + \XePersian@m = \XePersian@i \advance \XePersian@m by -3\relax + \advance \XePersian@y by -621\relax +\fi +\advance\XePersian@sn by -\csname XePersian@persian\romannumeral\the\XePersian@i% +\endcsname +\ifnum\XePersian@i = 1 + \XePersian@d = \XePersian@dn \advance \XePersian@d by 30 \advance\XePersian@d by -\XePersian@persiani +\else + \XePersian@d = \XePersian@dn \advance \XePersian@d by -\XePersian@sn +\fi +\beginL\number\XePersian@d\endL\space% +\persianmonth{\XePersian@m}\space\beginL\number\XePersian@y\endL% +} +\def\persianmonth#1{\ifcase#1\or فروردین\or +اردیبهشت\or +خرداد\or تیر\or +مرداد\or +شهریور\or مهر\or +آبان\or آذر\or +دی\or بهمن\or +اسفند\fi} +%% +%% Copyright © 2008-2009 by Vafa Khalighi <vafa@users.berlios.de> +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "maintained" (as per LPPL maintenance status) +%% by Vafa Khalighi. +%% +%% +%% +%% +%% +%% End of file `xepersian-persiancal.sty'. |