Guest User

Untitled

a guest
May 13th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 1.89 KB | None | 0 0
  1.  
  2. --Program wyświetlajacy datę dnia nastepnego
  3. --Autor: Aukasz Barczyński
  4.  
  5.  
  6. WITH Ada.Text_IO; USE Ada.Text_IO;
  7. WITH Ada.Integer_Text_IO; USE Ada.Integer_Text_IO;
  8. PROCEDURE Data_Dnia_Nst IS
  9.    Data_Dzien : Integer;
  10.    Znak: String (1 .. 1);
  11.    Data_Miesiac : Integer;
  12.    Data_Rok: Integer;
  13.  
  14. BEGIN
  15.    
  16.    Put_Line("Podaj date w formacie dd-mm-rrrr");
  17.    Put_Line("Przykladowo: 12-11-2011");
  18.    Get(Data_Dzien);
  19.    Get(Znak);
  20.    Get(Data_Miesiac);
  21.    Get(Znak);
  22.    Get(Data_Rok);
  23.    New_Line;
  24.    
  25.    IF Data_Dzien < 1 OR Data_Dzien > 31 OR Data_Miesiac < 1 OR Data_Miesiac > 12 THEN
  26.       Put_Line("Podales zla date");
  27.    ELSIF Data_Dzien = 29 AND Data_Miesiac = 2 AND Data_Rok Mod 4 = 0 THEN
  28.       Put_Line("Podales zla date");
  29.    ELSE
  30.    Put_Line("Podales taka date:");
  31.    Put(Data_Dzien,0);
  32.    Put(Znak);
  33.    Put(Data_Miesiac,0);
  34.    Put(Znak);
  35.    Put(Data_Rok,0);
  36.    
  37.    
  38.    -- MODYFIKACJA DATY NA DZIEN NASTEPNY
  39.    IF Data_Dzien = 31 THEN
  40.       Data_Dzien :=01;
  41.       IF Data_Miesiac = 12 THEN
  42.          Data_Miesiac := 01;
  43.          Data_Rok := Data_Rok +1;
  44.       ELSE Data_Miesiac := Data_Miesiac + 1;
  45.       END if;
  46.    ELSIF Data_Dzien = 30 THEN
  47.       CASE Data_Miesiac IS
  48.          WHEN 1|3|5|7|8|10|12 => Data_dzien := 31;
  49.          WHEN 2|4|6|9|11 => Data_Dzien := 01; Data_miesiac := Data_miesiac +1;
  50.          when others => Data_dzien := Data_dzien;  
  51.       END CASE;
  52.    ELSIF Data_Dzien = 28 AND Data_Rok Mod 4 = 0 AND Data_Miesiac = 2 THEN
  53.       Data_Dzien := 01;
  54.       Data_Miesiac := 03;
  55.    ELSIF Data_Dzien = 29 AND Data_Miesiac = 2 THEN
  56.       Data_Dzien := 01;
  57.       Data_Miesiac := 03;
  58.    ELSE
  59.       Data_dzien := Data_dzien + 1;
  60.    END IF;
  61.    
  62.    -- WYDRUK ZMODYFIKOWANEJ DATY  
  63.    New_Line;
  64.    Put_Line("Data dnia nastepnego to:");
  65.    Put(Data_Dzien,0);
  66.    Put(Znak);
  67.    Put(Data_Miesiac,0);
  68.    Put(Znak);
  69.    Put(Data_Rok,0);
  70.    END IF;
  71. END;
Add Comment
Please, Sign In to add comment