Transformation d'un nombre d'années en secondes

Pseudo-code

Le programme réduit à sa plus simple expression

ACCEPTE NombreAnnee
Affiche NombreAnnee * 365 * 24 * 60 * 60


Visual Basic

Cette version génère un dépassement de capacité

Sub NombreSecondeAnnee()
  Dim NombreAnnee As Integer
  NombreAnnee = InputBox("Combien d'années ?")
  MsgBox NombreAnnee * 365 * 24 * 60 * 60
End Sub


Cette version fonctionne

Sub NombreSecondeAnneeV2()
  Dim NombreAnnee As Integer
  Dim NombreSeconde As Currency
  NombreAnnee = InputBox("Combien d'années ?")
  NombreSeconde = CCur(NombreAnnee) * 365 * 24 * 60 * 60
  MsgBox NombreSeconde
End Sub


Version qui exige un nombre entre 1 et 100, et qui donne un résultat plus convivial

Sub NombreSecondeAnneeV3()
  Dim NombreAnnee As Integer
  Dim NombreSeconde As Currency
  NombreAnnee = InputBox("Combien d'années ? (1 - 100)")
  Do While NombreAnnee < 1 Or NombreAnnee > 100
    NombreAnnee = InputBox("Nombre invalide. Combien d'années ? (1 - 100)")
  Loop
  NombreSeconde = CCur(NombreAnnee) * 365 * 24 * 60 * 60
  MsgBox "Dans " & NombreAnnee & ", il y a " & NombreSeconde
End Sub


Maintenant, on peut également ne rien rentrer comme valeur, ou du texte

Sub NombreSecondeAnneeV4()
  Dim NombreAnnee As Integer
  Dim NombreSeconde As Currency
  NombreAnnee = Val(InputBox("Combien d'années ? (1 - 100)"))
  Do While NombreAnnee < 0 Or NombreAnnee > 100
    NombreAnnee = Val(InputBox("Nombre invalide. Combien d'années ? (1 - 100)"))
  Loop
  If NombreAnnee = 0 Then
    MsgBox "Vous n'avez pas entré d'années !"
  Else
    NombreSeconde = CCur(NombreAnnee) * 365 * 24 * 60 * 60
    MsgBox "Dans " & NombreAnnee & " ans, il y a " & NombreSeconde & " secondes."
  End If
End Sub