[VBScript] Aide manipulation date/heure

Résolu
olivier -  
carbon3 Messages postés 471 Statut Membre -
bonjour,
j'ai un souci avec la manipulation de dates/heures dans un vbscript.
Je récupère dans une variable l'attribut DateLastModified d'un fichier.
Je voudrais ensuite ajouter 2h a cette valeur. Mon probleme, est que pour les heures proches de minuit, il faut pouvoir passer au jour suivant. J'ai essayé d'utiliser la fonction DateAdd, mais il ne semble pas que cela fonctionne (je n'arrives pas à lier Date et Heure). Peut-etre y-a-t-il une autre fonction que je ne connaisses pas ?

Merci d'avance pour toute réponse

3 réponses

  1. carbon3 Messages postés 471 Statut Membre 73
     
    Salut, voilà un script qui fonctionne chez moi. Comme tu peux le constater, cela va au-delà de la gestion des heures
    dim yeartab
    yeartab = array(31,28,31,30,31,30,31,31,30,31,30,31)
    Dim fs, f, s
    filespec="fichier.ext" ' à modifier suivant desiderata
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.GetFile(filespec)
        s = f.DateLastModified
    	msgbox s
        'Extraction des données de la date
    	sjour=Cint(Mid(s,1,2))
    	smois=Cint(Mid(s,4,2))
    	san=Cint(Mid(s,7,4))
    	'Extraction des données de l'heure
    	sheure=Cint(Mid(s,12,2))
    	smin=Mid(s,15,2)	' pas besoin de convertir, on ne travaille pas avec
    	ssec=Mid(s,18,2)	' idem
    	
    	sheure=sheure+2
    	
    	' Et là, ça se complique
    if sheure > 24 then
    	sheure=sheure-24
    	sjour=sjour+1
    		
    	maxdayforthismonth=yeartab(smois-1)
    	'sommes-nous dans une année bissextile ?
    	if smois=2 then
    		if ((san Mod 400) - (san Mod 100) + (san Mod 4) = 0) then maxdayforthismonth=29
    	end if
    	if sjour > maxdayforthismonth then
    		sjour = 1
    		smois = smois + 1
    		if smois > 12 then
    			smois = 1
    			san = san + 1
    		end if
    	end if
    end if
    leadzeroj = "": if sjour < 10 then leadzeroj = "0"
    leadzerom = "": if smois < 10 then leadzerom = "0"
    leadzeroh = "": if sheure < 10 then leadzeroh = "0"
    NewDateLastModified = leadzeroj & sjour & "/" & leadzerom & smois & "/" & san & " " & leadzeroh & sheure & ":" & smin & ":" & ssec
    msgbox NewDateLastModified
    

    Je crois que c'est cohérent
    0
  2. marouane20 Messages postés 28 Statut Membre 1
     
    slt si vous pouvez m'aider,j ne sais pas comment avoir l'apparance de windows en application vb (fichier dll)
    0
  3. carbon3 Messages postés 471 Statut Membre 73
     
    salut,
    peux-tu être plus précis marouane ?
    0