Vanilla_Fury

zakaz_28_02_2021_v2

Feb 28th, 2021
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.96 KB | None | 0 0
  1. program zakaz_28_02_2021_v2;
  2.  
  3. {$APPTYPE CONSOLE}
  4. {$R *.res}
  5.  
  6. uses
  7.     System.SysUtils;
  8.  
  9. type
  10.     TYear = 1900 .. 1999;
  11.     TMonth = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);
  12.     TDayOfWeek = (MON, TUE, WED, THU, FRI, SAT, SUN);
  13.  
  14. const
  15.     ArrOfMonth: array [0 .. 11] of string = ('Янв', 'Фев', 'Мар', 'Апр', 'Май',
  16.       'Июнь', 'Июль', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек');
  17.  
  18. var
  19.     Year: TYear;
  20.     Month: TMonth;
  21.     DayOfWeek: TDayOfWeek;
  22.     QuantityOfDays, QuantityOfDates, i: Byte;
  23.  
  24. begin
  25.     DayOfWeek := SAT;
  26.     QuantityOfDays := 28;
  27.  
  28.     QuantityOfDates := 0;
  29.  
  30.     for Year := 1900 to 1999 do
  31.     begin
  32.         for Month := Jan to Dec do
  33.         begin
  34.             for i := 1 to QuantityOfDays - 28 do
  35.             begin
  36.                 if DayOfWeek = SUN then
  37.                     DayOfWeek := MON
  38.                 else
  39.                     DayOfWeek := Succ(DayOfWeek);
  40.             end;
  41.  
  42.             if DayOfWeek = FRI then
  43.             begin
  44.                 Writeln('13 ', ArrOfMonth[Ord(Month)], ' ', Year);
  45.                 Inc(QuantityOfDates);
  46.             end;
  47.  
  48.             if Month < Aug then
  49.             begin
  50.                 if Month = Feb then
  51.                 begin
  52.                     if (Year mod 4 = 0) and (Year <> 1900) then
  53.                         QuantityOfDays := 29
  54.                     else
  55.                         QuantityOfDays := 28;
  56.                 end
  57.                 else
  58.                 begin
  59.                     if Ord(Month) mod 2 = 1 then
  60.                         QuantityOfDays := 30
  61.                     else
  62.                         QuantityOfDays := 31;
  63.                 end;
  64.             end
  65.             else if Ord(Month) mod 2 = 0 then
  66.                 QuantityOfDays := 30
  67.             else
  68.                 QuantityOfDays := 31;
  69.         end;
  70.     end;
  71.     Writeln('Пятниц 13 в с 1900 до 1999: ', QuantityOfDates);
  72.     Readln;
  73.  
  74. end.
Advertisement
Add Comment
Please, Sign In to add comment