Fonctions date (tampon horaire unix)

Soyez le premier à donner votre avis sur cette source.

Vue 11 372 fois - Téléchargée 281 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
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
AFRODJE a poser, aussi, la question sur le forum :
http://www.vbfrance.com/infomsg_TIME-UNIX_1084295.aspx#4
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
"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
Messages postés
759
Date d'inscription
mardi 13 mars 2007
Statut
Membre
Dernière intervention
22 janvier 2014

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
Messages postés
296
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
28 janvier 2008

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(
Messages postés
550
Date d'inscription
vendredi 5 janvier 2001
Statut
Membre
Dernière intervention
23 septembre 2006

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.