Module Module1 Public Function joursannee(a As Integer) As Integer Dim nja As Integer nja = 365 Dim zz As Integer zz = a Mod 400 If zz = 0 Then nja = 366 Return (nja) End If zz = a Mod 100 If zz = 0 Then nja = 365 Return (nja) End If zz = a Mod 4 If zz = 0 Then nja = 366 Return (nja) End If Return (nja) End Function Public Function defininjm(unmois As Integer, year As Integer) As Integer Dim s As Integer If unmois = 1 Then s = 31 If unmois = 3 Then s = 31 If unmois = 4 Then s = 30 If unmois = 5 Then s = 31 If unmois = 6 Then s = 30 If unmois = 7 Then s = 31 If unmois = 8 Then s = 31 If unmois = 9 Then s = 30 If unmois = 10 Then s = 31 If unmois = 11 Then s = 30 If unmois = 12 Then s = 31 If unmois = 2 And joursannee(year) = 365 Then s = 28 If unmois = 2 And joursannee(year) = 366 Then s = 29 Return (s) End Function Public Function ecart(jo As Integer, mo As Integer, an As Integer) As Integer Dim ano As Integer Dim nombrejours As Integer Dim joursmois(12) As Integer Dim m As Integer nombrejours = 0 For m = 1 To 12 joursmois(m) = defininjm(m, an) Next For ano = 1583 To (an - 1) nombrejours = nombrejours + joursannee(ano) Next Dim meis As Integer For meis = 1 To (mo - 1) nombrejours = nombrejours + joursmois(meis) Next nombrejours = nombrejours + jo - 1 Return (nombrejours) End Function Public Sub recommencer() Console.WriteLine("Appuyez sur [Enter] pour recommencer") Console.WriteLine("Fermez la fenêtre pour terminer le programme") Dim r As String r = Console.ReadLine() Main() End Sub Public Sub joursemaine() Console.Write("Entrez l'année AAAA :") Dim annee As Integer annee = Console.ReadLine() If annee < 1583 Then recommencer() Console.Write("Entrez le mois MM :") Dim mois As Integer mois = Console.ReadLine() If mois < 1 Or mois > 12 Then recommencer() Console.Write("Entrez le jour JJ :") Dim jour As Integer jour = Console.ReadLine() If jour < 1 Then recommencer() If jour > defininjm(mois, annee) Then recommencer() Dim x As Integer x = ecart(jour, mois, annee) Dim z As Integer z = x Mod 7 Dim nomjour(6) As String nomjour(0) = "Samedi" nomjour(1) = "Dimanche" nomjour(2) = "Lundi" nomjour(3) = "Mardi" nomjour(4) = "Mercredi" nomjour(5) = "Jeudi" nomjour(6) = "Vendredi" Console.WriteLine("") Console.WriteLine("Le jour est " & nomjour(z)) recommencer() End Sub Public Sub entredeuxdates() Dim jour(2) As Integer Dim mois(2) As Integer Dim annee(2) As Integer Dim tt As Integer For tt = 1 To 2 Console.WriteLine("") Console.WriteLine("Date " & tt & " :") Console.Write("Année AAAA : ") annee(tt) = Console.ReadLine() If annee(tt) < 1583 Then recommencer() Console.Write("Mois MM : ") mois(tt) = Console.ReadLine() If mois(tt) < 1 Or mois(tt) > 12 Then recommencer() Console.Write("Jour JJ : ") jour(tt) = Console.ReadLine() If jour(tt) < 1 And jour(tt) > defininjm(mois(tt), annee(tt)) Then recommencer() Next Console.WriteLine("") Dim nbj As Integer nbj = ecart(jour(2), mois(2), annee(2)) - ecart(jour(1), mois(1), annee(1)) Console.WriteLine("Il y a " & nbj & "jours d'écart.") Console.WriteLine("") recommencer() End Sub Public Sub dansjjours() Console.Write("Entrez l'année AAAA :") Dim annee As Integer annee = Console.ReadLine() If annee < 1583 Then recommencer() Console.Write("Entrez le mois MM :") Dim mois As Integer mois = Console.ReadLine() If mois < 1 Or mois > 12 Then recommencer() Console.Write("Entrez le jour :") Dim jour As Integer jour = Console.ReadLine() If jour < 1 Then recommencer() If jour > defininjm(mois, annee) Then recommencer() Console.Write("Combien de jours plus tard ? ") Dim futur As Integer futur = Console.ReadLine() If futur < 0 Then recommencer() For z = 1 To futur jour = jour + 1 If jour > defininjm(mois, annee) Then jour = 1 mois = mois + 1 If mois > 12 Then mois = 1 annee = annee + 1 End If End If Next Console.WriteLine("") Console.WriteLine("La date est le " & jour & "/" & mois & "/" & annee) recommencer() End Sub Sub Main() Console.WriteLine("Calendrier Grégorien - Développé par Town Ground anciennement Igor Gorovitch") Console.WriteLine(" License CC - Creative Commons") Console.WriteLine("----------------------------------------------------------------------------") Console.WriteLine("") Console.WriteLine("Fonctionne à partir du 01/01/1583") Console.WriteLine("") Console.WriteLine("1 Obtenir le jour de la semaine d'une date") Console.WriteLine("2 Nombre de jours entre deux dates") Console.WriteLine("3 À partir d'une date quelle date seront-nous dans J jours?") Console.WriteLine("") Console.Write("Votre choix :") Dim choix As Integer choix = Console.ReadLine Console.WriteLine("") If choix = 1 Then joursemaine() If choix = 2 Then entredeuxdates() If choix = 3 Then dansjjours() recommencer() End Sub End Module