TP-programmation-imperative/tp06/dates.adb
2023-06-10 21:03:54 +02:00

67 lines
1.6 KiB
Ada
Executable file

-- Implantation d'un module Dates très simplifié.
with Ada.Text_IO;
use Ada.Text_IO;
with Ada.Integer_Text_IO;
use Ada.Integer_Text_IO;
package body Dates is
procedure Initialiser ( Date : out T_Date ;
Jour : in Integer ;
Mois : in T_Mois ;
Annee : in Integer ) is
begin
Date.Jour := Jour;
Date.Mois := Mois;
Date.Annee := Annee;
end Initialiser;
-- Afficher un entier sur 2 positons au moins (avec des zéros
-- supplémentaires si nécessaires)
--
-- Paramètres :
-- Nombre : le nombre à afficher
--
-- Nécessite :
-- Nombre >= 0
--
procedure Afficher_Deux_Positions (Nombre : in Integer) with
Pre => Nombre >= 0
is
begin
Put (Nombre / 10, 1);
Put (Nombre mod 10, 1);
end Afficher_Deux_Positions;
procedure Afficher (Date : in T_Date) is
begin
Afficher_Deux_Positions (Date.Jour);
Put ('/');
Afficher_Deux_Positions (T_Mois'pos (Date.Mois) + 1);
Put ('/');
Afficher_Deux_Positions (Date.Annee / 100);
Afficher_Deux_Positions (Date.Annee mod 100);
end Afficher;
function Le_Jour (Date : in T_Date) return Integer is
begin
return Date.Jour;
end Le_Jour;
function Le_Mois(Date : in T_Date) return T_Mois is
begin
return Date.Mois;
end Le_Mois;
function L_Annee (Date : in T_Date) return Integer is
begin
return Date.Annee;
end L_Annee;
end Dates;