[R] Func WMIDateStringToDate WMI

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

[R] Func WMIDateStringToDate WMI

#1

Message par Laddy »

Bonjour tout le monde.

J'ai ma fonction qui ne fonctionne pas à cause de CDate, quel est l'équivalent en autoit pour faire fonctionner ma fonction de conversion de date ?

Code : Tout sélectionner

$WMIDateStringToDate = CDate(StringMid($dtmInstallDate, 5, 2) & "/" & _
 
Les mots clés que j'ai rentré sur le forum ou dans le fichier d'aide ne m'ont rien retourné.

Code : Tout sélectionner

Func WMIDateStringToDate($dtmInstallDate)
    $WMIDateStringToDate = CDate(StringMid($dtmInstallDate, 5, 2) & "/" & _
        StringMid($dtmInstallDate, 7, 2) & "/" & StringLeft($dtmInstallDate, 4) _
            & " " & StringMid ($dtmInstallDate, 9, 2) & ":" & _
                StringMid($dtmInstallDate, 11, 2) & ":" & StringMid($dtmInstallDate, _
                    13, 2))
EndFunc

Comme beaucoup j'utilisai celle ci mais la date et heure ne sont pas exacte à la conversion il manque 2h.

Code : Tout sélectionner

Func WMIDateStringToDate($dtmDate)
    Return (StringMid($dtmDate, 5, 2) & "/" & _
    StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
    & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
EndFunc
 
Merci

Bon week end à tous

Laddy
Modifié en dernier par Laddy le lun. 01 nov. 2010 08:41, modifié 1 fois.
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#2

Message par jl56 »

Bonjour

c'est dommage que vous ne donnez pas un exemple de date à convertir
en lisant le code a l'envers j'ai déduit un format de date comme ceci 20103010061900 pour le 30 10 2010 à 6h19

dans votre exemple cdate est une fonction je pense que c'est une erreur
vous avez la fonction WMIDateStringToDate et la variable $WMIDateStringToDate !!
du coup en corrigeant votre code j'arrive à la solution de votre exemple N°3 et je n'ai pas de probleme
d'où ma remarque sur le format de date à convertir

Code : Tout sélectionner

$dtmInstallDate="20103010061900"

MsgBox(0,"date convertie=",WMIDateStringToDate($dtmInstallDate))
Exit


Func WMIDateStringToDate($dtmInstallDate)
    Return (StringMid($dtmInstallDate, 5, 2) & "/" & _
        StringMid($dtmInstallDate, 7, 2) & "/" & StringLeft($dtmInstallDate, 4) _
            & " " & StringMid ($dtmInstallDate, 9, 2) & ":" & _
                StringMid($dtmInstallDate, 11, 2) & ":" & StringMid($dtmInstallDate, _
                    13, 2))
EndFunc
A+ JL56
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#3

Message par Tlem »

@jl56
Mais ou est donc la différence entre votre code et le deuxième code de Laddy ??? :shock:

Le mieux, serait que Laddy nous donne une date/variable de départ, puis le résultat escompté et là je pense qu'on pourra donner une solution. :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#4

Message par jl56 »

@Tlem

HE oui il n'y en pas ( si ce n'est justement un exemple de date/variable de départ )
en corrigeant votre code j'arrive à la solution de votre exemple N°3 et je n'ai pas de probleme
d'où ma remarque sur le format de date à convertir
Et j'arrive au même raisonnement, il manque un exemple de date à convertir

A+ JL56
Bon weekend

ce soir en BRETAGNE ça commence à souffler fort
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#5

Message par Laddy »

Bonjour
je crois que je me suis embrouillée dans mes tests en fait il me manque une heure.

J'obtiens ceci avec l'une ou l'autre fonction, il manque une heure sur l'heure réelle de l'execution.
[10/31/2010 08:58:29] RP318 - autoit_date

au lieu de cela :

[31/10/2010 09:58:29]autoit_date

Le format des dates WMI ressemble à ceci : [20101031085829.390625-000]autoit_date
Mon code entier est ici : http://autoitscript.fr/forum/viewtopic.php?f=3&t=6031
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#6

Message par ani »

hypothèse probable,activation de heure d'hiver/été

Normalement tu devrais être à la bonne heure sans rien changer aujojurd'hui :p

bonne continuation ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#7

Message par Tlem »

Je pense que le décalage de l'heure correspond à la gestion de l'heure d'été/hivers.

Puisque nous avons changé d'heure cette nuit, vous ne devriez plus avoir ce décalage aujourd'hui. ;)

Désactivez cette gestion automatique et vous verrez que ça ira mieux.
Si vous ne pouvez pas désactiver cette fonctionnalité, alors vous devrez prendre en compte la gestion de l'heure d'été/hivers. :roll:


Edit : Arf. Coiffé sur le poteau par ani. :lol:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#8

Message par Laddy »

Bonjour
non mon problème est avec le méridian de GreenWish je pense.

J'ai trouvé ma solution qui est la suivante.
Ma date et mon heure est Ok.

Code : Tout sélectionner

$dtmConvertedDate = ObjCreate("WbemScripting.SWbemDateTime")
$objWMI = ObjGet("winmgmts:\\localhost\root\default")
$colItems = $objWMI.ExecQuery("SELECT * FROM SystemRestore")
$i = 0
If $colItems.Count = 0 Then
    MsgBox(0, "Aucun Point", "No restore point in system.")
Else
    $i = $colItems.Count
    ;For Each $objItem In $colItems
    If IsObj($colItems) Then
        For $objItem In $colItems
            If $i < 6 Then
                $dtmConvertedDate.Value = $objItem.CreationTime
                $dtmCreationTime = $dtmConvertedDate.GetVarDate
                MsgBox(0, "RP", "[" & WMIDateStringToDate($dtmCreationTime) & "]" & $objItem.Description)
                ;MsgBox(0, "RP", "[" & WMIDateStringToDate($objItem.CreationTime) & $objItem.Description)
            EndIf
            $i = $i - 1
        Next
    EndIf
EndIf
Func WMIDateStringToDate($dtmInstallDate)
    Return (StringMid($dtmInstallDate, 5, 2) & "/" & _
        StringMid($dtmInstallDate, 7, 2) & "/" & StringLeft($dtmInstallDate, 4) _
            & " " & StringMid ($dtmInstallDate, 9, 2) & ":" & _
                StringMid($dtmInstallDate, 11, 2) & ":" & StringMid($dtmInstallDate, _
                    13, 2))
EndFunc
 
Je mettrai mon sujet en résolu demain matin car je n'ai pas mon code complet pour confirmer.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#9

Message par Tlem »

Mouarf, en dehors du fait d'avoir supprimé les options "WQL", 0x10 + 0x20 ligne 3 et l'utilisation de la fonction WMIDateStringToDate() ligne 15, votre code est identique !!!
Sachant que WMIDateStringToDate() ne sert que pour l'affichage du format de la date, je doute que vous ayez résolu votre problème de décalage de l'heure.
Il reviendra surement lors du passage en heure d'été. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#10

Message par Laddy »

Bonjour Tlem
Non, je pense que mon problème est réglé je testerai dans mon script plein demain.
ce souci existait vendredi il y avait 2h de différenceet aujourd'hui il manquait une heure.
C'est un souci de Date&Heure UTC.
http://www.activexperts.com/activmonito ... ment/date/
Je vous montre des captures d'écran
A gauche mon script complet AutoIt contenant mon soucis
A droite la restauration systeme de mon Windows

Image

Avec la correction voici ce que j'obtiens
Image
Bonne soirée.

PS : la fonction mail est désactivé sur le forum ? car je ne reçois pas les notifications de nouveaux messages.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Func WMIDateStringToDate WMI

#11

Message par Tlem »

Pour moi, c'est cette partie qui modifie la date :

Code : Tout sélectionner

$dtmConvertedDate.Value = $objItem.CreationTime
$dtmCreationTime = $dtmConvertedDate.GetVarDate
Le reste ne concerne que l'apparence. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre