Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPublic Function TimeStamp() As Double ' ' Calcule et retourne le nombre de secondes écoulées ' depuis le 1er Janvier 2000 ' ' Retourne -32768 SI la date de l'ordinateur est au ' moins une seconde avant celle de référence. ' ' ' Il est à noter que traditionnellement, 1/1/1980 est utilisé ' et plus rarement 1/1/1990, je prend le 1/1/2000 arbitrairement ' ' Plus tard p-ê modifier pour au moins pouvoir donner l'année de base, ' optionnellement encore plus tard ajouter mois et jour de cette année ' de base. Ex: X = TimeStamp(2000, 1, 1) -> 1er Jan 2000 est la base. ' Dim dtLclDate As Date Dim iDiff1 As Integer ' Différence entre l'année de référence et celle en cours Dim iCmpt As Integer Dim iNowTimer As Long Const UnJour = 86400 ' Nombre de secondes dans un jour Const TrenteJours = 2592000 ' Nombre de secondes dans un mois de trente jours Const SecondesAn = 31536000 ' Nombre de secondes dans une année Const SecondesAnBi = 31622400 ' Nombre de secondes dans une année bissextile Const BaseAn = 2000 ' L'année de base utilisée TimeStamp = 0 ' Par principe dtLclDate = Now ' Date iNowTimer = Timer ' Durant l'exécution, on peux changer de jours alors on prend note tout de suite. iDiff1 = Year(dtLclDate) - BaseAn ' Si la date courante est avant la date de base erreur! If (iDiff1 < 0) Then TimeStamp = -32768 Exit Function End If 'Calcule les années complètées... iDiff1 = iDiff1 - 1 'Sinon calcule l'année en cours comme terminée! For iCmpt = 0 To iDiff1 If Bissextile(iCmpt + BaseAn) Then TimeStamp = TimeStamp + SecondesAnBi Else TimeStamp = TimeStamp + SecondesAn End If Next iCmpt 'Calcule les mois complétés... iDiff1 = Month(dtLclDate) - 1 For iCmpt = 1 To iDiff1 Select Case (iCmpt) Case 1, 3, 5, 7, 8, 10, 12 'En principe, on n'ira jamais jusqu'à 12 TimeStamp = TimeStamp + (TrenteJours + UnJour) '(31 * UnJour) Case 4, 6, 9, 11 TimeStamp = TimeStamp + TrenteJours '(30 * UnJour) Case 2 If Bissextile(Year(dtLclDate)) Then TimeStamp = TimeStamp + (TrenteJours - UnJour) '(29 * UnJour) Else TimeStamp = (TimeStamp + TrenteJours) - (UnJour * 2) '(28 * UnJour) End If ' Case Else End Select Next iCmpt 'Calcule les jours complétés... iDiff1 = Day(dtLclDate) - 1 TimeStamp = TimeStamp + (UnJour * iDiff1) 'Ajouter les secondes depuis minuit... TimeStamp = TimeStamp + iNowTimer End Function