Asp.net - classe de gestion du temps

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 229 fois - Téléchargée 29 fois

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

Ajouter un commentaire

Commentaires

Messages postés
255
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
21 avril 2009

Et en c#, il faut faire comment??!! stp ;)
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4
Bonjour,

De mémoire, la gestion des commentaires pour l'autocompletion ne fonctionne pas en VB.NET.
Il faut passer par le C# pour cela.

Cordialement
Romelard Fabrice
Messages postés
255
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
21 avril 2009

Salut...

j'utilise aussi cette méthode pour mes classes et je me demande si on peut ajouter un commentaire aux propriétés, afin qu'il s'affiche à la complétion???
exemple : "Get or Set an object..."

Julien
Utilisateur anonyme
Très bien organisé félicitation...

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.