OVH Cloud OVH Cloud

Algorithme de date

4 réponses
Avatar
NeoB
Bonjour à tous,

Je suis à la recherche d'un algorithme particulier.
Explication :

En ajoutant (ou soustrayant) un nombre de secondes à une date, j'aimerais
connaître la DATE, le nbre d'heures, de minutes et de secondes résultant de
l'ajout ou de la soustration des secondes.

Par exemple, si je soustrais (ou aditionne) 300 000 secondes à la date
d'aujourd'hui, quelle sera le résultat en
DATE, HEURES, MINUTES et SECONDES
20 Janvier, 2 heures, 20 minutes et 25 secondes (ce résultat n'est pas bon
mais à titre d'exemple)

Merci pour vous précieuses lumières !!!

NéoB

4 réponses

Avatar
Jacques93
Bonjour NeoB,
NeoB a écrit :
Bonjour à tous,

Je suis à la recherche d'un algorithme particulier.
Explication :

En ajoutant (ou soustrayant) un nombre de secondes à une date, j'aimerais
connaître la DATE, le nbre d'heures, de minutes et de secondes résultant de
l'ajout ou de la soustration des secondes.

Par exemple, si je soustrais (ou aditionne) 300 000 secondes à la date
d'aujourd'hui, quelle sera le résultat en
DATE, HEURES, MINUTES et SECONDES
20 Janvier, 2 heures, 20 minutes et 25 secondes (ce résultat n'est pas bon
mais à titre d'exemple)




Regardes du côté des des fonctions :

DateAdd
DateDiff

--
Cordialement,

Jacques.
Avatar
X
Bonjour,

A mon sens, il faut passer par la gestion décimal de la date (géré par
Windows), ou par le jour julien (JJ) voir ce mot... Et ne repasser en
sexagésimal que quand tout est fini...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"NeoB" a écrit dans le message de news:

Bonjour à tous,

Je suis à la recherche d'un algorithme particulier.
Explication :

En ajoutant (ou soustrayant) un nombre de secondes à une date, j'aimerais
connaître la DATE, le nbre d'heures, de minutes et de secondes résultant
de
l'ajout ou de la soustration des secondes.

Par exemple, si je soustrais (ou aditionne) 300 000 secondes à la date
d'aujourd'hui, quelle sera le résultat en
DATE, HEURES, MINUTES et SECONDES
20 Janvier, 2 heures, 20 minutes et 25 secondes (ce résultat n'est pas bon
mais à titre d'exemple)

Merci pour vous précieuses lumières !!!

NéoB




Avatar
bayosky
Dans le message ,
NeoB a écrit :
Bonjour à tous,




Bonjour,


Y'a pas grand chose à faire car une "date" est avant tout un "double"
caché ...
un jour vaut 1 et 1 heure 1/24 etc ...

donc .....

Mieux vaut un petit exemple :

test1 donne une nouvelle date
test2 donne un écart en Jours, Heures, min secondes

Sub test1()
Dim DDD As Date
Dim EEE As Double
' date de départ : 7 oct 1957 à 16h 24 min 49 s
' J'avais tapé 16:24:49 ... la machine l'a modifié
' attention mm/jj/aaaa ...
DDD = #10/7/1957 4:24:49 PM#
'
' on recule de 3 jours, 17h , 47 min et 51sec
EEE = 3 + 17 / 24 + 47 / 1440 + 51 / 86400

MsgBox (Format(DDD - EEE, "dddd dd MMM yyyy à hh:mm:ss"))

End Sub

Sub test2()
Dim Départ As Date
Dim Arrivée As Double
Dim Ecart As Double
Dim J, H, M, S As Long

' date de départ : 7 oct 1957 à 16h 24 min 49 s
' J'avais tapé 16:24:49 ... la machine l'a modifié
' attention mm/jj/aaaa ...
Départ = #10/7/2004 4:24:15 PM#
'
'date d'arrivée
Arrivée = #3/7/2006 10:45:19 PM#

Ecart = Arrivée - Départ
J = Int(Ecart)
H = Int((Ecart - J) * 24)
M = Int(((Ecart - J) * 24 - H) * 60)
S = Int((((Ecart - J) * 24 - H) * 60 - M) * 60)
MsgBox (CStr(J) & " Jours " & CStr(H) & " h " & CStr(M) & "
min " & CStr(S) & " s")

End Sub
Avatar
Neob
Merci pour vos réponse.

Voici la fonction j'ai faite avec DateAdd :

Private Function GetValue(ByVal dblSecondes As Double, ByVal DateRef As
Date) As String

Dim MyDate As Date

MyDate = DateAdd("s", dblSecondes, DateRef)

GetValue = WeekdayName(Weekday(MyDate, vbMonday)) & " " _
& Day(MyDate) & " " _
& MonthName(Month(MyDate)) & " " _
& Year(MyDate) & " à " _
& Format$(MyDate, "hh") & "h" _
& Format$(MyDate, "mm") & " minutes et " _
& Format$(MyDate, "ss") & " secondes"

End Function

Utilisation:

Msgbox GetValue(1535272, "01/01/2000 00:00")