Problème de calcul de date => résultat négatif

Signaler
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Bpnjour,

En VBS, j'ai créé:
- une variable aaqqq (année + quantième du jour machine)
- une variable aaqqq5 extraite des caractères du nom d'un fichier
Aujourd'hui, j'ai donc:
aaqqq = 02177
aaqqq5 = 02172

Je n'arrive pas à faire aaqqq - aaqqq5 = 5
J'ai un résultat négatif.
J'ai essayé pas de fonctions de reconversion, mais nenni...ca marche pas !!!

Si quelqu'un peut m'aider:
Ci-dessous, mon code:

3 réponses

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
Dim Path
Path = "c:\KRNSDE"
MsgBox ShowFolderList(Path),vbmessage,"Fichiers contenus dans le répertoire " & Path
Function ShowFolderList(strPath)
Dim fso, Dossiers, fic, fichiers, strListe
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder(strPath)
Set fic = Dossiers.Files
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' conversion de la date du jour (jjmmaa) en aaqqq -5 jours '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim qqq, aaqqq, aaqqq5
qqq = DatePart("y", Date)
If qqq < 10 Then
aaqqq = Right(Date,2) & "00" & DatePart("y", Date)
aaqqq5 = Right(Date,2) & "00" & DatePart("y", DateAdd("d", -5, Date))
Else
If qqq < 100 Then
aaqqq = Right(Date,2) & "0" & DatePart("y", Date)
aaqqq5 = Right(Date,2) & "0" & DatePart("y", DateAdd("d", -5, Date))
Else
aaqqq = Right(Date,2) & DatePart("y", Date)
aaqqq5 = Right(Date,2) & DatePart("y", DateAdd("d", -5, Date))
End If
End If
'MsgBox "aaqqq " & aaqqq & " aaqqq5 " & aaqqq5 & " test jmo"

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' delete des fichiers inférieurs de 5 jours à aaqqq '
' variable fichiers => c:\KRNSDE\SDE_yyy-aaqqq '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim diff
For Each fichiers in fic

diff = aaqqq - Mid(fichiers,19,5)
MsgBox aaqqq & " - " & aaqqq5 & " = " & diff
If diff >= 5 Then
MsgBox Mid(fichiers,19,5)
MsgBox "aaqqq =" & aaqqq & " fichier=" & fichiers & " sera deleté ..diff=" & diff
'fso.DeleteFile
Else
MsgBox Mid(fichiers,19,5)
MsgBox "aaqqq =" & aaqqq & " fichier=" & fichiers & " ne sera pas deleté ..diff=" &diff
End If

strListe = strListe & vbcrlf & vbcrlf & fichiers.Name & " Date (jjmmaa) : " & fichiers.DateLastModified
Next

ShowFolderList = strListe
End Function
0
Messages postés
55
Date d'inscription
mardi 21 mai 2002
Statut
Membre
Dernière intervention
6 mai 2009

essaie ca et dit moi si c'est ok
Dim strfolder
strfolder = "c:\KRNSDE"

Dim fso, f, fdate, fname, fic
Dim dtDiffFile As Date
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder("strfolder ")
Set fic = Dossiers.Files
For Each fichiers In fic
Set f = fso.GetFile(fichiers)
fdate = f.DateCreated
fname = f.Name
dtDiffFile = DateDiff("d", Now, fdate)
If dtDiffFile <= -5 Then fso.DeleteFile (fname)

Next

ps: dans un fichier n'utilise pas "-" c'est pas tres bon pour ton programe
nariel1
0
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
Salut,

Pourquoi faire long quand on peut faire court !!!!!!
Ca marche. J'est testé avec DateLastModified.
Je ne sais pas pourquoi je suis venu m'enterrer avec cette date -5, puisque qu'il y a "created", "last accessed, lastmodified...

Merci de ta proposition qui raccourcit considérablemnt le code.
J'ai noté ton surnom "nariel1" dans mon répertoire à questions !!!
Je débute en VBS...c'est pas trop évident pour certaines manipulations, mais heureusement ca se rapproche de plusieurs langages que je pratique sur BULL depuis qques années.
Et sur le Forum, il n'y a pas beaucoup de personnes qui connaissent VBScript.
Je suis aussi en contact "journalier" avec VicoLaChips2 qui lui se démmerde bien

A +
jean-marc
0