home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / pstoolbx / makehkal.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-07-28  |  6.3 KB  |  140 lines

  1. CONST
  2.   Copyright = ' (c) 1991 G. Blumert, Hochdonner Chaussee 16, D-2224 Burg/Dithm.';
  3.  
  4.  
  5. TYPE
  6.  
  7.   Header_des_kalenderfiles = RECORD
  8.               cor                           : STRING[Length(Copyright)];
  9.               Kennung                       : CHAR;
  10.               Anzahl_der_Wochentage         : BYTE;
  11.               Anzahl_der_Monate             : BYTE;
  12.               Anzahl_der_Feiertage          : WORD;
  13.               SamstagsNr                    : BYTE;
  14.               SamstagFrei                   : BOOLEAN;
  15.               SonntagsNr                    : BYTE;
  16.               SonntagFrei                   : BOOLEAN;
  17.   END;
  18.  
  19.   Feiertagstabelle = RECORD
  20.                    Beachten    : BOOLEAN;
  21.                    JMin, JMax  : INTEGER;
  22.                    CASE Art: CHAR OF
  23.                      'A','O': (Differenz: INTEGER);
  24.                      'W': (T_min, T_max: WORD; Wochentagnummer: BYTE);
  25.                      'D','H': (Tagnummer: WORD);
  26.  
  27.   END;
  28. (********************************************************)
  29. CONST
  30.   AWt  = 7;
  31.   LWtN = 10;
  32.   AdM  = 13;
  33.   LdMN = 13;
  34.   AdF  = 28;
  35.   LdFN = 18;
  36.   Samstag = 5; SamsFrei = TRUE;
  37.   Sonntag = 6; SonnFrei = TRUE;
  38.  
  39. TYPE
  40.   wt_string = STRING[LWtN];
  41.   m_string  = STRING[LdMN];
  42.   ft_string = STRING[LdFN];
  43.  
  44. CONST
  45. feiertage: ARRAY[1..AdF] OF ft_string = (
  46.    'Neujahr',                     { 1}
  47.    'Neujahr',                     { 2}
  48.    'Jom Kippur',                  { 3}
  49.    'Sukkot',                      { 4}
  50.    '2. Sukkot',                   { 5}
  51.    'Schemini Azeret',             { 6}
  52.    'Simchat Torah',               { 7}
  53.    'Chanukkah',                   { 8}
  54.    'S''oth Chanukkah',            { 9}
  55.    'Tu B''Schwat',                {10}
  56.    'Purim',                       {11}
  57.    '1. Pessach',                  {12}
  58.    '2. Pessach',                  {13}
  59.    '7. Pessach',                  {14}
  60.    '8. Pessach',                  {15}
  61.    'Lag ba-Omer',                 {16}
  62.    '1. Schawuoth',                {17}
  63.    '2. Schawuoth',                {18}
  64.    'Tische be-Aw',                {19}
  65.    'Ostern',                      {20}
  66.    'Karfreitag',                  {21}
  67.    'Ostermontag',                 {22}
  68.    'Himmelfahrt',                 {23}
  69.    'Pfingstsonntag',              {24}
  70.    'Pfingstmontag',               {25}
  71.    'Fronleichnam',                {26}
  72.    'Allerheiligen',               {27}
  73.    '1. Advent');                  {28}
  74.  
  75.  
  76.  
  77. ftagdef: ARRAY[1..adf] OF Feiertagstabelle = (
  78.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 1),                 {Neujahr}
  79.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 2),                 {Neujahr}
  80.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 10),                {Jom Kippur}
  81.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 15),                {Sukkot}
  82.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 16),                {2. Sukkot}
  83.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 22),                {Schemini Azeret}
  84.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 23),                {Simchat Torah}
  85.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 84),                {Chanukkah}
  86.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 92),                {S'oth Chanukkah}
  87.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 133),               {Tu B'Schwat}
  88.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 162),               {Purim}
  89.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 192),               {1. Pessach}
  90.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 193),               {2. Pessach}
  91.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 198),               {7. Pessach}
  92.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 199),               {8. Pessach}
  93.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 225),               {Lag ba-Omer}
  94.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 242),               {1. Schawuoth}
  95.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 243),               {2. Schawuoth}
  96.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'H'; Tagnummer: 304),               {Tischa be-Aw}
  97.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 0),                {Ostern}
  98.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: -2),               {Karfreitag}
  99.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 1),                {Ostermontag}
  100.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 39),               {Himmelfahrt     }
  101.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 49),               {Pfingstsonntag  }
  102.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 50),               {Pfingstmontag   }
  103.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 60),               {Fronleichnam    }
  104.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 305),              {Allerheiligen   }
  105.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'A'; Differenz: 0));               {1. Advent}
  106.  
  107.   wochentage: ARRAY[0..Pred(AWt)] OF wt_string = (
  108.               '  ','  ','  ','  ','  ','Schabbat','  ');
  109.    monate:    ARRAY[1..AdM] OF m_string = (
  110.               'Tisri','Cheschwan','Kislew','Tewet','Schewat',
  111.               'AdarI','AdarII','Nissan','Ijar','Siwan',
  112.               'Tamus','Aw','Elul');
  113.  
  114.   VAR f: FILE;
  115.       f_head: Header_des_Kalenderfiles;
  116.       i: BYTE;
  117. BEGIN
  118.   Assign(f,'H_KAL.GK3');
  119.   Rewrite(f,1);
  120.   WITH f_head DO BEGIN
  121.     cor := copyright;
  122.     Kennung := 'H';
  123.     Anzahl_der_Wochentage := AWt;
  124.     Anzahl_der_Monate := AdM;
  125.     Anzahl_der_Feiertage := AdF;
  126.     SamstagsNr := Samstag;
  127.     SamstagFrei := Samsfrei;
  128.     SonntagsNr := Sonntag;
  129.     SonntagFrei := SonnFrei
  130.   END;
  131.   BlockWrite(f,f_head,SizeOf(f_head)); {Kopf in Datei Schreiben}
  132.  
  133.   FOR i := 0 TO Pred(AWt) DO BlockWrite(f, wochentage[i],Succ(Length(wochentage[i])));
  134.   FOR i := 1 TO AdM DO BlockWrite(f, monate[i], Succ(Length((monate[i]))));
  135.   FOR i := 1 TO (adf) DO BlockWrite(f,feiertage[i],Succ(Length(feiertage[i])));
  136.  
  137.   BlockWrite(f,ftagdef,SizeOf(ftagdef));
  138.   Close(f);
  139. END.
  140.