Asp.net - classe de gestion du temps

Contenu du snippet

Dans le cadre d'un développement encore en cours, un besoin m'a obligé à créer cette classe qui est une traduction (avec quelques ajouts) de la version Java disponible ici :
-http://brassens.upmf-grenoble.fr/IMSS/dciss/Enseignements/PSR/Prog/Java/CoursJava/Temps.htm

Je vous invite d'ailleurs à consulter les autres exemple visibles sur le site :
-http://brassens.upmf-grenoble.fr/IMSS/dciss/Enseignements/PSR/Prog/Java/CoursJava/tabledesMatieres.htm

Ils sont tous aisément traduisible en .NET (VB.NET, C# ou J#).

Source / Exemple :


' -----------------------------------------------------------------------------
Public Class TimeClass
 Private _Secondes As Integer
 Private _Minutes As Integer
 Private _Heures As Integer
 Private _Jours As Integer

#Region "Liste Propriétés de la Classe"
 Public Property Secondes() As Integer
  Get
   Return _Secondes
  End Get
  Set(ByVal Value As Integer)
   _Secondes = Value
  End Set
 End Property
 Public Property Minutes() As Integer
  Get
   Return _Minutes
  End Get
  Set(ByVal Value As Integer)
   _Minutes = Value
  End Set
 End Property
 Public Property Heures() As Integer
  Get
   Return _Heures
  End Get
  Set(ByVal Value As Integer)
   _Heures = Value
  End Set
 End Property
 Public Property Jours() As Integer
  Get
   Return _Jours
  End Get
  Set(ByVal Value As Integer)
   _Jours = Value
  End Set
 End Property
#End Region

 ' -----------------------------------------------------------------------------
 Public Sub New()
  ' Constructeur par Défaut de la classe
  _Secondes = 0
  _Minutes = 0
  _Heures = 0
  _Jours = 0
 End Sub
 ' -----------------------------------------------------------------------------
 Public Sub New(ByVal NbJours As Integer, ByVal NbHeures As Integer, _
  ByVal NbMinutes As Integer, ByVal NbSecondes As Integer)
 ' Constructeur transmettant la valeur de chaque parametre de temps (jour, heure, minute et seconde)
  _Secondes = NbSecondes
  _Minutes = NbMinutes
  _Heures = NbHeures
  _Jours = NbJours
 End Sub

 ' -----------------------------------------------------------------------------
 Public Sub New(ByVal TotalNbSecondes As Long)
 ' Constructeur transmettant le nombre total de secondes
  Dim LeTemps As New TimeClass
  LeTemps.ConversionDetaillee(TotalNbSecondes)
  Secondes = LeTemps.Secondes
  Minutes = LeTemps.Minutes
  Heures = LeTemps.Heures
  Jours = LeTemps.Jours
 End Sub

 ' -----------------------------------------------------------------------------
 Public Sub ConversionDetaillee(ByVal NBSec As Long)
 ' Procédure permettant de calculer chaque variable à partir du Nombre total de secondes
  Jours = NBSec \ 86400
  Heures = (NBSec - (Jours * 86400)) \ 3600
  Minutes = (NBSec - (Heures * 3600) - (Jours * 86400)) \ 60
  Secondes = NBSec - (Minutes * 60) - (Heures * 3600) - (Jours * 86400)
 End Sub
 
 ' -----------------------------------------------------------------------------
 Public Function ConversionSeconde() As Long
 ' Fonction permettant de connaître le nombre total de seconde à partir des valeurs des variables
  Return CType(((((Jours * 24) + Heures) * 60 + Minutes) * 60) + Secondes, Long)
 End Function

 ' -----------------------------------------------------------------------------
 Public Function Egal(ByVal ValeurAComparer As TimeClass) As Boolean
 ' Fonction de test d'égalité de 2 objets TimeClass
  Dim ValeurBase As Long = ConversionSeconde()
  Dim ValeurComp As Long = ValeurAComparer.ConversionSeconde
  If ValeurBase = ValeurComp Then
   Return True
  Else
   Return False
  End If
 End Function

 ' -----------------------------------------------------------------------------
 Public Function DifferenceA(ByVal ValeurAComparer As TimeClass) As Integer
 ' Fonction qui renvoie la différence entre 2 objets TimeClass en secondes
  Dim ValeurBase As Long = ConversionSeconde()
  Dim ValeurComp As Long = ValeurAComparer.ConversionSeconde
  Return CType(ValeurBase - ValeurComp, Integer)
 End Function

 ' -----------------------------------------------------------------------------
 Public Function AjouterTemps(ByVal ValAAjouter As TimeClass) As TimeClass
 ' Fonction qui ajoute un objet TimeClass à un autre par la somme des 2 totaux de secondes
  Dim ValeurBase As Long = ConversionSeconde()
  Dim ValeurComp As Long = ValAAjouter.ConversionSeconde
  Dim TemptResult As New TimeClass(ValeurBase + ValeurComp)
  Return TemptResult
 End Function
    
 ' -----------------------------------------------------------------------------
 Public Function ReturnChaineTemps() As String
 ' Fonction qui renvoie la chaine permettant de définir textuellement la valeur d'un objet TimeClass
  Dim TempChaine As String = ""
  If Jours > 1 Then
   TempChaine &= Jours & " Jours "
  Else
   TempChaine &= Jours & " Jour "
  End If
  If Heures > 1 Then
   TempChaine &= Heures & " Heures "
  Else
   TempChaine &= Heures & " Heure "
  End If
  If Minutes > 1 Then
   TempChaine &= Minutes & " Minutes "
  Else
   TempChaine &= Minutes & " Minute "
  End If
  If Secondes > 1 Then
   TempChaine &= Secondes & " Secondes "
  Else
   TempChaine &= Secondes & " Seconde "
  End If
  Return TempChaine
 End Function

 ' -----------------------------------------------------------------------------
End Class

Conclusion :


Bon coding

Romelard Fabrice (Alias F___)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.