MANIPULER LES DATES ET HEURES (ADDITION ET SOUSTRACTION)

Messages postés
81
Date d'inscription
lundi 18 février 2002
Statut
Membre
Dernière intervention
4 février 2005
- - Dernière réponse : olyonnais76
Messages postés
2
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
17 juin 2011
- 17 juin 2011 à 16:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/3230-manipuler-les-dates-et-heures-addition-et-soustraction

reivon
Messages postés
81
Date d'inscription
lundi 18 février 2002
Statut
Membre
Dernière intervention
4 février 2005
-
et bien, t'as l'air d'aimer les dates et heures toi ! merci pour toutes les explications ci-dessus, ca aide
magidev
Messages postés
250
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
28 août 2009
-
De rien, c'est tout naturel. J'ai aussi fait un tutorial sur le SQL et les bases de donne
devsurf
Messages postés
148
Date d'inscription
dimanche 13 octobre 2002
Statut
Membre
Dernière intervention
13 novembre 2008
-
T'aurais pa l'heure stp?
:)
Trés bien c'est exactement ce que je cherchais
Merc
iurodivi
Messages postés
4
Date d'inscription
mercredi 17 décembre 2003
Statut
Membre
Dernière intervention
22 décembre 2003
-
bien, merci :)
loopingstar
Messages postés
9
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 février 2004
-
Bonjour, j'ai un piti souci : Voici un exemple : Comment faire pur enlever "00:03:00" à "15:55:00" ? En fait je voudrai enlever des secondes ou minutes (qui sont sous la forme "hh:mm:ss" à un temps (sous la même forme "hh:mm:ss")
Merci à vous.
magidev
Messages postés
250
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
28 août 2009
-
La réponse est dans la source : DateAdd mais avec un nombre négatif au lieu d'un positif
loopingstar
Messages postés
9
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 février 2004
-
Oui, sinon il y a cette solution
text1.text = cdate(cdate("15:55:00") - cdate("00:03:00"))
Ce qui revient au même mais bon ;)
hoyo22
Messages postés
4
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
4 juin 2004
-
Trop bien cette petite explication.
C'est bien utile surtout pour un débutant en VB comme moi
bibilafrayeur
Messages postés
59
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
26 juillet 2007
-
Je vois qu'il y'a des personne qui s'inspirent de la MSDN ;)

Moi je voudrais convertire un nombre très important de secondes (86500 par exemple) pour me renvoyer un affichage comme ceci :
Jour/heure/minutes/secondes

Sais tu comment faire ?

Merci
yaumegui
Messages postés
3
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
22 décembre 2006
-
GRAND MERCI au passage !
yaumegui
Messages postés
3
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
22 décembre 2006
-
GRAND MERCI au passage !
Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011
-
Salut, c'est très pratique tes indications pour la manipulation des date et heures.
J'ai un petit complément à mettre(parce que j'ai du chercher un peu pour trouver la soluce)

Comment convertir un SYSTEMTIME en DATE:

GetLocalTime MyTime

Dim MyDate
MyDate = DateSerial(MyTime.wYear, MyTime.wMonth, MyTime.wDay)
MyDate = MyDate + TimeSerial(MyTime.wHour, MyTime.wMinute, MyTime.wSecond)


Ca peut toujours dépanner quelqu'un...
cs_teddy_bear
Messages postés
36
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2005
-
merci bcp ca m'a vraiment aidée (je suis encore débutante) mais je voudrai savoir si c'etai possible biensur comment compter le nombre de jours entre deux dates.
merci encore
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
nJoursEcart = Clng(dat1) - Clng(dat2)
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
Egalon > regarde si passe en VB, sera bien plus rapide:
Dim dbl As Double
SystemTimeToVariantTime MyTime, dbl
mydat = dbl
cs_teddy_bear
Messages postés
36
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2005
-
merci bcp brunews j'apprecie vraiment
je vai l'essaiyer mnt
cs_teddy_bear
Messages postés
36
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2005
-
malheureusment ca n'a pas marché, j'ai du faire une erreur peut etr
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
bizzare, je vais tester de suite dans du Excel, pas de VB installe mais c'est idem.
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
Sub Test()
Dim dt1 As Date, dt2 As Date
Dim nbrJoursEcart As Long
dt1 = Date
dt2 = CDate("5/6/2004")
nbrJoursEcart = CLng(dt1) - CLng(dt2)
MsgBox nbrJoursEcart
End Sub

me donne bien 59, semble coherent.
cs_teddy_bear
Messages postés
36
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2005
-
c ok ca marche vraiment je n sai pa commen te remercier t'es trop gentil
merci bbbbccccccccccccpppppppppppppppppp
Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011
-
Ok, merci BruNews...
Vais essayer dans pas longtemps, je commencais à avoir sérieusement besoin de cette petite fonction.
;-)
cs_Ouneufe
Messages postés
60
Date d'inscription
mardi 4 septembre 2001
Statut
Membre
Dernière intervention
19 janvier 2009
-
Merci pour ce précieux turorial :)
aurelskull
Messages postés
18
Date d'inscription
dimanche 13 avril 2003
Statut
Membre
Dernière intervention
27 mai 2005
-
tres utile merci
fcdconnect
Messages postés
40
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
13 mars 2006
-
salut pas mal mais je suis novice et j'ai une date au format aaa/mm/jj a lakelle j'aimerai ajouter x année...

merci d'avance
cs_ab44
Messages postés
79
Date d'inscription
lundi 28 mars 2005
Statut
Membre
Dernière intervention
4 juin 2012
-
salut déja merci pour ta source !
je voudrais savoir comment faire pour par exemple quand il est 23:00:00, ajouter par exemple 2 heures et que ca met a jour la date que ca ajoute 1 jour !

merci a vous !
fcdconnect
Messages postés
40
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
13 mars 2006
-
Moi j'utilise ca pour les jours ds une requete si ca peut t'aider :

Format(DateSerial(Year([req1].date1)-[req1].Duree,Month([req1].date1),Day([req1].date1)),"dd/mm/yyyy"))
jo l indien
Messages postés
6
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
1 mars 2006
-
Super clair et super utile! 10/10
Ca m'enleve une belle épine
grace à DateAdd() notamment
MERCI!
ecranbleu27
Messages postés
190
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
29 avril 2009
1 -
bjr
moi je souhaite faire une somme d'heures, lorsque celle-ci va au delà de 24h (donc le resultat :sommecolonne) cela se transforme en date,
comment dois -je "formater" sommecolonne pour bien avoir des heures (par ex 28:30)
merci
Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011
-
tu formates, le résultat ma_date (en heures:)
nb_heures = day(ma_date)*24 + hour(my_date)
ensuite si tu veux conserver les minutes il te faudra formater un affichage texte; car si tu gardes des formats d'heures, il passera forcément en gestion date. tu peux aussi travailler en séparant minutes et heures en utilisant des entiers.
sanfoura10
Messages postés
1
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 juin 2006
-
c'est un code simple et très utile je l'ai déjà utilisé dans mon code pour afficher la date sur une page word
merci pour votre aide monsieur temps :)
cs_benhi
Messages postés
1
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
19 juillet 2006
-
Tes fonctions, c'est super.
Je cherche celle qui permet de retrouver le dernier jour du dernier trimestre complet par rapport à la date du jour. Tu as une idée.....
cs_Tioneb
Messages postés
193
Date d'inscription
dimanche 16 décembre 2001
Statut
Membre
Dernière intervention
29 juillet 2015
-
Très bien la source. Juste un petit problème avec l'ajout de jour à une date (je n'ai besoin que de cette fonction donc je n'ai testé que ça!!!). En effet, il ne faut pas mettre (par exemple):

DateAdd("j", 5, Date)
mais
DateAdd("d", 5, Date)
Car VB est "anglais"

Sinon, c'est très bien
hobbi1
Messages postés
25
Date d'inscription
dimanche 29 août 2004
Statut
Membre
Dernière intervention
14 février 2009
-
Je cherchais des infos sur les dates et j'ai trouvé ces explications très claires !

Mais je crois que ca ne répond pas à mon soucis : je récupère un mois en nombre et je voudrais le convertir en texte
Est-ce que c'est la fonction Month() qu'il me faut ?

Ex : je veux que 8 donne "Août".
La syntaxe est : Month(8) ?????
cs_poupi91
Messages postés
5
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
17 décembre 2006
-
La syntaxe est MonthName(8) qui donnera août ...
motimed
Messages postés
2
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
18 septembre 2006
-
Merci a tous,..mais j'ai un autre pb à résoudre : jréalise une gestion de stock,arrivé a l'historique des entrées et sorties ,il fo ke jrécupére les données entre 2 dates (du ../../.. au ../../.... )saisie par l' utilisateur. en access la requéte sa marche avec between..and..,mais en vb non,,!!!!! msg genre type incompatible ..helpp!!
Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011
-
tu dois convertir ta date en chaine de caractères au format de access. Par exmple sur MySQL, le format est yyyy-mm-dd hh:mm:ss. Et TOUT mettre en chaine de caractères dans ta requete.
motimed
Messages postés
2
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
18 septembre 2006
-
oui merci Egalon,,c un pu sa,,mai j'ai résolu lpb a l'aide du code suivant,et sa marché d'un seul coup : (d'ailleur jlai trouvé ds vbfrance)

Function MakeUSDate(dDate As Variant)
If Not IsDate(dDate) Then Exit Function
MakeUSDate = "#" & Month(dDate) & "/" & Day(dDate) & "/" & Year(dDate) & "#"
End Function

Private Sub test_click()

Dim Req As String
Dim Date_Deb As String
Dim Date_Fin As String


Req = "SELECT * FROM T_FACTURE"

Date_Deb = MakeUSDate(Me.Date_Deb)
Date_Fin = MakeUSDate(Me.Date_Fin)

Req = Req & " WHERE T_FACTURE.FACT_MODIF Between " & Date_Deb & " AND " & Date_Fin & ""

DoCmd.RunSQL Req

End Sub
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
Aucun besoin de manip String, une date est un numeric:
Dim Req As String
Dim Date_Deb As String
Dim Date_Fin As String
Req = Req & " WHERE T_FACTURE.FACT_MODIF Between " & CLng(CDate(Date_Deb)) & " AND " & CLng(CDate(Date_Fin))
Devrait aller ainsi.
begiladss
Messages postés
7
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
1 mars 2007
-
Comment faire la difference en deux heures en format hh:mm:ss?
begiladss
Messages postés
7
Date d'inscription
jeudi 1 février 2007
Statut
Membre
Dernière intervention
1 mars 2007
-
J'ai par exemples cette heure (12:10:30)afficher dans mon textbox. comment faire pour n'est que récuperer la minute et l'afficher en msgbox
NykoKurapika
Messages postés
37
Date d'inscription
jeudi 10 février 2005
Statut
Membre
Dernière intervention
10 janvier 2008
-
Juste une petite indication ! je ne sais pas si ca marche en VB6 mais en .NET toujours bien que oui ^^

Pour l'ajout de jours (ou de mois etc ...) DateResult=DateAdd("d",15,Date1) OK !

Mais pour la soustraction, au lieu d'utilisé dateDiff : DateResult=DateAdd("d",-15,Date1)

l'ajout du signe " - " permet à lui seul de passer d'une addition à une soustraction !

Voilou !

Nyko
vixe
Messages postés
2
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
2 juillet 2008
-
Bonjour tout le monde.
Tout cela est super interessant et m'aide beaucoup. J'ai encore un souci avec les date. Je dois faire un programme qui calcul des delais en jours. Le probleme de la soustraction des date à ete levé par une de vos contribution. Sauf que mes delais doivent etre calculés en jours ouvrables(semaine hors samedis et dimanches me suffit). Il y a sur excel une fonction "joursem" qui permet de differencier les jours mais je ne sais pas si ca existe sur VBA.
MeRcI pour votre aide
vixe
Messages postés
2
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
2 juillet 2008
-
autant pour moi, j'ai trouvé weekday!
cs_cruchot59
Messages postés
14
Date d'inscription
mardi 14 juillet 2009
Statut
Membre
Dernière intervention
27 septembre 2009
-
jsuis méga débutant... et j'ai installé la macro qui donne l'heure sur une cellule A1 de la premiere feuille d'exell

en fait il donne bien l'heure mais la date est 00/01/1900...

si on change la date de la cellule A1, la seconde d'après ca revient pareil

j'en ai besoin car j'ai besoin de faire une soustraction (un timer) entre 18/07/2009 06:17 et maintenant (hh:mm) (un truc qui met à jour hh:mm chaque seconde)

merci bcp pour votre aide...
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
pour l'heure actuelle, faire simplement

MonHeure.Text = Now

MonHeure.Text = TimeSerial(Hour(Now), Minute(Now), Second(Now))
se remplace d'ailleurs par:
MonHeure.Text = Now - Date
olyonnais76
Messages postés
2
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
17 juin 2011
-
bonjour à tous
Débutant en VBA, je suis devant un problème que je n'arrive pas à résoudre.
dans 1 feuille excel, je dois recueillir les données de fonctionnement de turbines (MW), ces données sont actualisées TOUTES les minutes et ça sur 1 mois (soit environ 45000 lignes).
Il me faut faire la somme de MW produits par JOUR à reporter dans un tableau.
Les dates sont donc variables car l'opération est à faire mensuellement.
Je n'arrive pas à déclarer mes variables (dates) et à écrire le tableau avec par ex 01/03/11,02/03/11,03/03/11... jusqu'à la fin du mois
De plus il faudrait prendre en compte Février...
Si queleques personnes pouvaient m'aider, ce serait magnifique
Merci d'avance
cs_dedian
Messages postés
1
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 juin 2011
-
ça c'est tout ce qu'il me fallait. Merci
Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011
-
olyonnais76, tu pourrais poster un extrait de ton tableau, je crains comprendre...
olyonnais76
Messages postés
2
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
17 juin 2011
-
Merci pour votre aide à tous mais j'ai résolu mon problème de date