Type TDate = Enregistrement
Jour : entier
Mois : entier
Annee : entier
Fin
Fonction EstBissextile(Annee : entier) : Booleen
Si (Annee % 400 = 0) ou ((Annee % 4 = 0) et (Annee % 100 ≠ 0)) Alors
Retourner VRAI
Sinon
Retourner FAUX
FinSi
FinFonction
Fonction NombreJoursDansMois(Mois : entier, Annee : entier) : entier
Si Mois = 1 ou Mois = 3 ou Mois = 5 ou Mois = 7 ou Mois = 8 ou Mois = 10 ou Mois = 12 Alors
Retourner 31
Sinon Si Mois = 4 ou Mois = 6 ou Mois = 9 ou Mois = 11 Alors
Retourner 30
Sinon Si Mois = 2 Alors
Si EstBissextile(Annee) Alors
Retourner 29
Sinon
Retourner 28
FinSi
FinSi
FinFonction
Fonction ConvertirEnJours(Date : TDate) : entier
Déclarer JoursTotaux : entier
JoursTotaux ← Date.Annee * 365 + Date.Jour
Pour i de 1 à Date.Mois - 1 faire
JoursTotaux ← JoursTotaux + NombreJoursDansMois(i, Date.Annee)
FinPour
Pour i de 1 à Date.Annee - 1 faire
Si EstBissextile(i) Alors
JoursTotaux ← JoursTotaux + 1
FinSi
FinPour
Retourner JoursTotaux
FinFonction
Fonction DifferenceJours(Date1 : TDate, Date2 : TDate) : entier
Déclarer JoursDate1, JoursDate2 : entier
JoursDate1 ← ConvertirEnJours(Date1)
JoursDate2 ← ConvertirEnJours(Date2)
Retourner Abs(JoursDate2 - JoursDate1)
FinFonction
Début
Déclarer Date1, Date2 : TDate
Déclarer Diff : entier
Ecrire("Entrer la première date (jour, mois, année) :")
Lire(Date1.Jour, Date1.Mois, Date1.Annee)
Ecrire("Entrer la deuxième date (jour, mois, année) :")
Lire(Date2.Jour, Date2.Mois, Date2.Annee)
Diff ← DifferenceJours(Date1, Date2)
Ecrire("La différence en jours entre les deux dates est : ", Diff)
Fin
La différence en jours entre ces deux dates serait de 26 jours.
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.
Pas encore de commentaires.