home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / pstoolbx / mbrdkal.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-07-28  |  6.4 KB  |  141 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': (Tagnummer: WORD);
  26.  
  27.   END;
  28. (********************************************************)
  29. CONST
  30.   AWt  = 7;
  31.   LWtN = 10;
  32.   AdM  = 12;
  33.   LdMN = 10;
  34.   AdF  = 30;
  35.   LdFN = 18;
  36.   Samstag = 5; SamsFrei = TRUE;
  37.   Sonntag = 6; SonnFrei = TRUE;
  38. TYPE
  39.   wt_string = STRING[LWtN];
  40.   m_string  = STRING[LdMN];
  41.   ft_string = STRING[LdFN];
  42.  
  43. CONST
  44.  
  45. feiertage: ARRAY[1..AdF] OF ft_string =
  46.   ( 'Neujahr',          { 1}
  47.    'Heilige 3 Könige',  { 2}
  48.    'Muttertag',         { 3}
  49.    'Erntedankfest',     { 4}
  50.    'Allerheiligen',     { 5}
  51.    'Volkstrauertag',    { 6}
  52.    'Buß- und Bettag',   { 7}
  53.    'Totensonntag',      { 8}
  54.    '1. Advent',         { 9}
  55.    '2. Advent',         {10}
  56.    '3. Advent',         {11}
  57.    '4. Advent',         {12}
  58.    'Rosenmontag',       {13}
  59.    'Fasching',          {14}
  60.    'Aschermittwoch',    {15}
  61.    'Karfreitag',        {16}
  62.    'Ostersonntag',      {17}
  63.    'Ostermontag',       {18}
  64.    'Himmelfahrt',       {19}
  65.    'Pfingstsonntag',    {20}
  66.    'Pfingstmontag',     {21}
  67.    'Fronleichnam',      {22}
  68.    'Maifeiertag',       {23}
  69.    'Tag d.dt. Einheit', {24}
  70.    'Tag d.dt. Einheit', {25}
  71.    'Mariä Himmelfahrt', {26}
  72.    'Heiligabend',       {27}
  73.    '1. Weihnachtstag',  {28}
  74.    '2. Weihnachtstag',  {29}
  75.    'Silvester');        {30}
  76.  
  77. ftagdef: ARRAY[1..adf] OF Feiertagstabelle = (
  78.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 1),                 {Neujahr         }
  79.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 6),                {Heilige 3 Könige}
  80.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'W'; T_min: 128; T_max: 134; Wochentagnummer: 6),   {Muttertag       }
  81.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'W'; T_min: 273; T_max: 279; Wochentagnummer: 6),   {Erntedankfest   }
  82.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 305),              {Allerheiligen   }
  83.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'A'; Differenz: -14),              {Volkstrauertag  }
  84.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'A';  Differenz: -11),              {Buß- und Bettag }
  85.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'A'; Differenz: -7),               {Totensonntag    }
  86.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'A'; Differenz:  0),               {1. Advent}
  87.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'A'; Differenz:  7),               {2. Advent}
  88.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'A'; Differenz: 14),               {3. Advent}
  89.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'A'; Differenz: 21),               {4. Advent}
  90.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: -48),              {Rosenmontag     }
  91.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: -47),              {Fasching        }
  92.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: -46),              {Aschermittwoch  }
  93.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: -2),                {Karfreitag      }
  94.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 0),                 {Ostersonntag    }
  95.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 1),                 {Ostermontag     }
  96.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 39),                {Himmelfahrt     }
  97.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 49),                {Pfingstsonntag  }
  98.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 50),                {Pfingstmontag   }
  99.          (Beachten: FALSE; JMin: 0; JMax: 0; Art: 'O'; Differenz: 60),               {Fronleichnam    }
  100.          (Beachten: TRUE; JMin: 1934; JMax: 0; Art: 'D'; Tagnummer: 121),            {1. Mai          }
  101.          (Beachten: TRUE; JMin: 1954;JMax:1990;Art: 'D'; Tagnummer: 168),            {17. Juni        }
  102.          (Beachten: TRUE; JMin:1990;JMax:0; Art: 'D'; Tagnummer: 276),
  103.          (Beachten: FALSE; JMin: 0; JMax: 0;Art: 'D'; Tagnummer: 227),              {Mariä Himmelfahr}
  104.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 358),               {Heiligabend     }
  105.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 359),               {1. Weihnachtstag}
  106.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 360),               {2. Weihnachtstag}
  107.          (Beachten: TRUE; JMin: 0; JMax: 0; Art: 'D'; Tagnummer: 365));              {Silvester       }
  108.  
  109.   wochentage: ARRAY[0..Pred(AWt)] OF wt_string = (
  110.               'Montag', 'Dienstag', 'Mittwoch',
  111.               'Donnerstag', 'Freitag', 'Samstag','Sonntag');
  112.  
  113.    monate:    ARRAY[1..AdM] OF m_string = (
  114.               'Januar','Februar','März','April','Mai','Juni','Juli','August',
  115.               'September','Oktober','November','Dezember');
  116.  
  117.   VAR f: FILE;
  118.       f_head: Header_des_Kalenderfiles;
  119.       i: BYTE;
  120. BEGIN
  121.   Assign(f,'G_BRDKAL.GK3');
  122.   Rewrite(f,1);
  123.   WITH f_head DO BEGIN
  124.     cor := copyright;
  125.     Kennung := 'G';
  126.     Anzahl_der_Wochentage := AWt;
  127.     Anzahl_der_Monate := AdM;
  128.     Anzahl_der_Feiertage := AdF;
  129.     SamstagsNr := Samstag;
  130.     SamstagFrei := Samsfrei;
  131.     SonntagsNr := Sonntag;
  132.     SonntagFrei := SonnFrei
  133.   END;
  134.   BlockWrite(f,f_head,SizeOf(f_head)); {Kopf in Datei Schreiben}
  135.   FOR i := 0 TO Pred(AWt) DO BlockWrite(f, wochentage[i],Succ(Length(wochentage[i])));
  136.   FOR i := 1 TO AdM DO BlockWrite(f, monate[i], Succ(Length((monate[i]))));
  137.   FOR i := 1 TO (adf) DO BlockWrite(f,feiertage[i],Succ(Length(feiertage[i])));
  138.   BlockWrite(f,ftagdef,SizeOf(ftagdef));
  139.   Close(f);
  140. END.
  141.