Fonctions date (tampon horaire unix)

1/5 (6 avis)

Vue 11 473 fois - Téléchargée 285 fois

Description

Voici un module qui permet de gerer les date comme le permet PHP (avec le tampon horaire UNIX). La date est en fait un nombre, le nombre de secondes écoulées depuis le 1/1/1970 à 0:00 (heure greenwich (attention au decalage horaire))

Source / Exemple :


'3 fonctions pour l'instant :
GMT_Time() 'retourne le tampon horaire UNIX courant
GMT_In(Date) 'retourne le tampon horaire UNIX de la date passée en parametre
GMT_Out(Format, TimeStamp) 'Retourne une string de la date correspondant au tampon horaire du 2nd parametre.
'Format permet de formater la sortie.

Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As HeureSyst)
    
Private Type HeureSyst
    GMTAnnee As Integer
    GMTMois As Integer
    GMTJourSemaine As Integer
    GMTJour As Integer
    GMTHeure As Integer
    GMTMinute As Integer
    GMTSeconde As Integer
    GMTMillisecondes As Integer
End Type

Private Function GetGMT() As String
    Dim sysTime As HeureSyst
    Call GetSystemTime(sysTime)
    a = sysTime.GMTHeure & ":" & sysTime.GMTMinute & ":" & sysTime.GMTSeconde
    b = CDate(Time) - CDate(a)
    GetGMT = b * 24 '(Utilse si vous voulez obtenir le décalage en heure ex: +2,5 (heures))
End Function

Public Function GMT_Time()
GMT_Time = DateDiff("s", DateAdd("s", GetGMT * 3600, "1/1/1970 0:0:0"), Now)
End Function

Public Function GMT_In(PDate As Date)
GMT_In = DateDiff("s", DateAdd("s", GetGMT * 3600, "1/1/1970 0:0:0"), PDate)
End Function

Public Function GMT_Out(FormatDate As String, TimeStamp As Long) As String
    Dim Temp As Date
    Temp = DateAdd("s", TimeStamp, DateAdd("s", GetGMT * 3600, "1/1/1970 0:0:0"))
    GMT_Out = Format(DateAdd("s", TimeStamp, DateAdd("s", GetGMT * 3600, "1/1/1970 0:0:0")), FormatDate)
End Function

Conclusion :


Ouvert à toutes propositions d'améliorations et d'ajout de fonctions.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
NHenry
Messages postés
14929
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
162
29 févr. 2008 à 12:06
AFRODJE a poser, aussi, la question sur le forum :
http://www.vbfrance.com/infomsg_TIME-UNIX_1084295.aspx#4
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
29 févr. 2008 à 11:52
"ne marche pas" un peu de détails... là, ca dit pas grand chose

concernant le type de Time, suffit de le demander à VB:

? typename(time)
Date
afrodje
Messages postés
759
Date d'inscription
mardi 13 mars 2007
Statut
Membre
Dernière intervention
22 janvier 2014

29 févr. 2008 à 11:03
Salut et bravo pour ton code.

J'ai un soucis dans la fonction GetGMT().
Le Call GetSystemTime(sysTime) ne marche pas.

Et CDate(Time), time est de quelle type? string ou time?

Merci
cs_olid
Messages postés
296
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
28 janvier 2008

11 août 2005 à 12:19
Merci, c'est diaboliquement simple, et terriblement efficace !! :o)

J'etais parti dans un calcul de "ouf" des années bisextiles et des mois impairs alors qui suffisait d'utiliser "DateDiff"... .oO(mais où avais je la truffe ???)

Felicitation, tu seras ajouté dans les credits du projet YMessengerPlus...

Pour anecdote, le calcul du timestamp va me permettre de réactiver les salons de discussions que Yahoo a bloqué dans Messenger pour certains pays, dont la France :o(
cs_Stephane
Messages postés
550
Date d'inscription
vendredi 5 janvier 2001
Statut
Membre
Dernière intervention
23 septembre 2006

27 août 2004 à 18:46
salu

haa un commentaire constructif, j'adore ca :)
oué j'avais pas pensé a la fonction Format
et excelente idée pour le GMT_Out

je met a jour tout de suite
merci a toi
a+
Afficher les 6 commentaires

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.