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

  1. CONST   Copyright = ' (c) 1991 G. Blumert, Hochdonner Chaussee 16, D-2224 Burg/Dithm.';
  2.  
  3. TYPE
  4.  
  5.   Header_des_kalenderfiles = RECORD
  6.               cor                           : STRING[Length(Copyright)];
  7.               Kennung                       : CHAR;
  8.               Anzahl_der_Wochentage         : BYTE;
  9.               Anzahl_der_Monate             : BYTE;
  10.               Anzahl_der_Feiertage          : WORD;
  11.               SamstagsNr                    : BYTE;
  12.               SamstagFrei                   : BOOLEAN;
  13.               SonntagsNr                    : BYTE;
  14.               SonntagFrei                   : BOOLEAN;
  15.   END;
  16.  
  17.   Feiertagstabelle = RECORD
  18.                    Beachten    : BOOLEAN;
  19.                    JMin, JMax  : INTEGER;
  20.                    CASE Art: CHAR OF
  21.                      'A','O': (Differenz: INTEGER);
  22.                      'W': (T_min, T_max: WORD; Wochentagnummer: BYTE);
  23.                      'D': (Tagnummer: WORD);
  24.  
  25.   END;
  26. (********************************************************)
  27. CONST
  28.   AWt  = 7;
  29.   LWtN = 10;
  30.   AdM  = 12;
  31.   LdMN = 10;
  32.   AdF  = 14;
  33.   LdFN = 18;
  34.   Samstag = 5; SamsFrei = TRUE;
  35.   Sonntag = 6; SonnFrei = TRUE;
  36.  
  37. TYPE
  38.   wt_string = STRING[LWtN];
  39.   m_string  = STRING[LdMN];
  40.   ft_string = STRING[LdFN];
  41.  
  42. CONST
  43.  
  44. feiertage: ARRAY[1..AdF] OF ft_string = (
  45.    'Neujahr',           { 1}
  46.    'Allerheiligen',     { 2}
  47.    'Karfreitag',        { 3}
  48.    'Ostersonntag',      { 4}
  49.    'Ostermontag',       { 5}
  50.    'Himmelfahrt',       { 6}
  51.    'Pfingstsonntag',    { 7}
  52.    'Pfingstmontag',     { 8}
  53.    'Fronleichnam',      { 9}
  54.    '1. Advent',         {10}
  55.    'Heiligabend',       {11}
  56.    '1. Weihnachtstag',  {12}
  57.    '2. Weihnachtstag',  {13}
  58.    'Silvester');        {14}
  59.  
  60. ftagdef: ARRAY[1..adf] OF Feiertagstabelle = (
  61.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 1),                 {Neujahr         }
  62.          (Beachten: FALSE; JMin: 1; JMax: 0; Art: 'D'; Tagnummer: 305),              {Allerheiligen   }
  63.          (Beachten: TRUE; JMin: 1; JMax: 0; Art: 'O'; Differenz: -2),                {Karfreitag      }
  64.          (Beachten: TRUE; JMin: 1; JMax: 0; Art: 'O'; Differenz: 0),                 {Ostersonntag    }
  65.          (Beachten: TRUE; JMin: 1; JMax: 0; Art: 'O'; Differenz: 1),                 {Ostermontag     }
  66.          (Beachten: TRUE; JMin: 1; JMax: 0; Art: 'O'; Differenz: 39),                {Himmelfahrt     }
  67.          (Beachten: TRUE; JMin: 1; JMax: 0; Art: 'O'; Differenz: 49),                {Pfingstsonntag  }
  68.          (Beachten: TRUE; JMin: 1; JMax: 0; Art: 'O'; Differenz: 50),                {Pfingstmontag   }
  69.          (Beachten: FALSE; JMin: 1; JMax: 0; Art: 'O'; Differenz: 60),               {Fronleichnam    }
  70.          (Beachten: FALSE; JMin: 1; JMax: 0; Art: 'W'; T_min: 331; T_max: 337; Wochentagnummer: 6),   {1. Advent    }
  71.          (Beachten: TRUE; JMin: 1; JMax: 0; Art: 'D'; Tagnummer: 358),               {Heiligabend     }
  72.          (Beachten: TRUE; JMin: 1; JMax: 0; Art: 'D'; Tagnummer: 359),               {1. Weihnachtstag}
  73.          (Beachten: TRUE; JMin: 1; JMax: 0; Art: 'D'; Tagnummer: 360),               {2. Weihnachtstag}
  74.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 365));              {Silvester       }
  75.  
  76.   wochentage: ARRAY[0..Pred(AWt)] OF wt_string = (
  77.               'Montag', 'Dienstag', 'Mittwoch',
  78.               'Donnerstag', 'Freitag', 'Samstag','Sonntag');
  79.  
  80.    monate:    ARRAY[1..AdM] OF m_string = (
  81.               'Januar','Februar','März','April','Mai','Juni','Juli','August',
  82.               'September','Oktober','November','Dezember');
  83.  
  84.   VAR f: FILE;
  85.       f_head: Header_des_Kalenderfiles;
  86.       i: BYTE;
  87. BEGIN
  88.   Assign(f,'J_KAL.GK3');
  89.   Rewrite(f,1);
  90.   WITH f_head DO BEGIN
  91.     cor := copyright;
  92.     Kennung := 'J';
  93.     Anzahl_der_Wochentage := AWt;
  94.     Anzahl_der_Monate := AdM;
  95.     Anzahl_der_Feiertage := AdF;
  96.     SamstagsNr := Samstag;
  97.     SamstagFrei := Samsfrei;
  98.     SonntagsNr := Sonntag;
  99.     SonntagFrei := SonnFrei
  100.   END;
  101.   BlockWrite(f,f_head,SizeOf(f_head)); {Kopf in Datei Schreiben}
  102.  
  103.   FOR i := 0 TO Pred(AWt) DO BlockWrite(f, wochentage[i],Succ(Length(wochentage[i])));
  104.   FOR i := 1 TO AdM DO BlockWrite(f, monate[i], Succ(Length((monate[i]))));
  105.   FOR i := 1 TO (adf) DO BlockWrite(f,feiertage[i],Succ(Length(feiertage[i])));
  106.  
  107.   BlockWrite(f,ftagdef,SizeOf(ftagdef));
  108.   Close(f);
  109. END.
  110.