Page 1 sur 1

Conversion TimeStamp JJMMAA #Détresse [RESOLU]

Posté : jeu. 09 févr. 2017 23:44
par Kerjean
Bonjour à tous !

Je suis débutant en programmation autoit et (attention question de newbie) je cherche à faire (ou à trouver) une fonction qui me convertisse un timestamp en chaîne JJMMAAA.
J'ai beau chercher et je ne trouve pas alors que ça me semblait être quelque chose d'élémentaire !

L'idéal serait un truc du genre

Dim $date_timeStamp = 1486565692
Dim $date_JJMMAA = convertTimeStamp($date_timeStamp)

Func convertTimeStamp($p_date_timeStamp)
   Local $retour = 00000000
   ;instructions providentielles
   return $retour
EndFunc
Merci beaucoup d'avance pour vos réponses :)

Re: Conversion TimeStamp JJMMAA #Détresse  

Posté : ven. 10 févr. 2017 08:58
par Hugues
Salut,

Regarde ça: Timestamp tuto

Re: Conversion TimeStamp JJMMAA #Détresse

Posté : ven. 10 févr. 2017 20:01
par Kerjean
Impeccable merci beaucoup ! Du coup la fonction qui répond à mon problème est la suivante:
; timeStamp to JJMMAAAA
Func TimeStampToDate($pTimeStamp)
    Local $Day2Add = Int($pTimeStamp / 86400)
    Local $iTimeVal = Mod($pTimeStamp, 86400)
    If $iTimeVal < 0 Then
        $Day2Add -= 1
        $iTimeVal += 86400
    EndIf
    Local $i_wFactor = Int((573371.75 + $Day2Add) / 36524.25)
    Local $i_xFactor = Int($i_wFactor / 4)
    Local $i_bFactor = 2442113 + $Day2Add + $i_wFactor - $i_xFactor
    Local $i_cFactor = Int(($i_bFactor - 122.1) / 365.25)
    Local $i_dFactor = Int(365.25 * $i_cFactor)
    Local $i_eFactor = Int(($i_bFactor - $i_dFactor) / 30.6001)
    Local $asDatePart[3]
    $asDatePart[2] = $i_bFactor - $i_dFactor - Int(30.6001 * $i_eFactor)
    $asDatePart[1] = $i_eFactor - 1 - 12 * ($i_eFactor - 2 >= 13)
    $asDatePart[0] = $i_cFactor - 4716 + ($asDatePart[1] < 3)
    Return StringFormat("%.2d%.2d%.2d",$asDatePart[2], $asDatePart[1], $asDatePart[0])
EndFunc

Re: Conversion TimeStamp JJMMAA #Détresse [RESOLU]

Posté : lun. 13 févr. 2017 18:01
par TommyDDR
Sinon avec l'UDF Date.au3 présent de base :
#include <Date.au3>

ConsoleWrite(timestampToDate(1487004935) & @CRLF)

Func timestampToDate($timestamp, $gmt = 1)
   Local $dateBase = "1970/01/01"
   Local $date = _DateAdd("s", $timestamp, $dateBase)
   $date = _DateAdd("h", $gmt, $date)
   Local $split = StringSplit($date, "/", 3)
   Return $split[2] & "/" & $split[1] & "/" & $split[0]
EndFunc
A savoir : Le timestamp est le nombre de secondes qui s'est écoulé depuis le 1er Janvier 1970
La fonction ajoute donc le nombre de secondes présent dans le timestamp par rapport au 1er janvier 1970, et ajoute ou retire des heures en fonction du GMT renseigné (En France nous sommes en GMT+1)

Re: Conversion TimeStamp JJMMAA #Détresse [RESOLU]

Posté : lun. 13 févr. 2017 23:23
par Kerjean
Merci Beaucoup TommyDDR !