Page 2 sur 2

Re: problème de dates

MessagePublié: 01 Juil 2003 à 10:14
par asx9
g un petit problème pour retirer les faire une différence entre 2 horaires, voici mon script:Sub Click(Source As Button) Dim workspace As New NotesUIWorkspace Dim uidoc As NotesUIDocument Set docstat = workspace.CurrentDocument 'pour écrire les résultats dans les champs du masque "stat" Set docdate = workspace.CurrentDocument.document 'pour relever les dates du masque "stat" Dim session As New notessession Dim db As notesdatabase Dim vue As notesview Dim doc As notesdocument 'documents de la base Dim difference As Long Dim tpsencours As Long Dim tpsvalidé As Long Dim tpsrefusé As Long Dim tpsattente As Long Dim nbreencours As Long Dim nbrevalidé As Long Dim nbrerefusé As Long Dim nbreattente As Long Dim statut As Long Set db = session.currentdatabase Set vue = db.getview("(test)") Set doc = vue.getfirstdocument 'initialisation des compteurs des nombres de documents nbreencours = 0 nbrerefusé = 0 nbrevalidé = 0 nbreattente = 0 nbredoc = 0 'récupérer les 2 dates et heures du masque "stat" Set datedebH = New notesdatetime (Format$(docdate.getitemvalue("datedeb")(0),"dd/mm/yyyy hh:nn:ss")) Set datefinH = New notesdatetime (Format$(docdate.getitemvalue("datefin")(0),"dd/mm/yyyy hh:nn:ss")) Set datedebJ = New notesdatetime (Format$(docdate.getitemvalue("datedeb")(0),"dd/mm/yyyy")) Set datefinJ = New notesdatetime (Format$(docdate.getitemvalue("datefin")(0),"dd/mm/yyyy")) While Not doc Is Nothing If (doc.getitemvalue("TypDoc")(0) = "DemandeModificationTiers") Then If Isnumeric (doc.getitemvalue("StatutDemande")(0)) Then 'condition qui permet d'éviter le plantage du programme statut = doc.getitemvalue("StatutDemande")(0) 'récupérer les dates et heures du document Set datedocdebH = New notesdatetime (Format$(doc.getitemvalue("Datedemande")(0),"dd/mm/yyyy hh:nn:ss")) Set datedocfinH = New notesdatetime (Format$(doc.getitemvalue("DateAccepteRefuse")(0),"dd/mm/yyyy hh:nn:ss")) Set datedocdebJ = New notesdatetime (Format$(doc.getitemvalue("Datedemande")(0),"dd/mm/yyyy")) Set datedocfinJ = New notesdatetime (Format$(doc.getitemvalue("DateAccepteRefuse")(0),"dd/mm/yyyy")) Call differenceJour (datedocdebJ, datedocfinJ, datedocdebH, datedocfinH, difference)........................... ......................................................Sub differenceJour (dateDJ, dateFJ, dateDH, dateFH, difference) Dim cptJ As Integer Dim diffJ As Long Dim soir As notesdatetime Dim matin As notesdatetime matin = ("09:00:00 AM") soir = ("06:00:00 PM diffJ = dateFH.TimeDifference(dateDH) While diffJ>50400 'soit 14h difference = difference + 28800 '+ une journée de 8h diffJ = diffJ - 1 Wend Msgbox("1") difference = difference - dateFH.TimeDifference(matin) - soir.TimeDifference(dateDH) 'on commence la journée à 9h et on la termine à 18h Msgbox("2") End Suble problème se trouve dans le calcul de "difference" ci-dessus

Re: problème de dates

MessagePublié: 01 Juil 2003 à 10:28
par Raziel
Salut,je ne comprends pas les affectations suivantsmatin = ("09:00:00 AM")soir = ("06:00:00 PMTu déclare "matin" et "soir" comme des object du type notesdatetimePar conséquents, tu devrais avoir une initialisation du type :set matin = new notesdatetime("09:00:00 AM")set soir = new notesdatetime("06:00:00 PM")

Re: problème de dates

MessagePublié: 01 Juil 2003 à 10:29
par Droad
Ouch ! J'ai un peu de mal à suivre. Qu'est ce que te veux calculer, exactement ?

Re: problème de dates

MessagePublié: 01 Juil 2003 à 10:50
par asx9
j'ai remplacé cette erreur par:Set matin = New NotesDateTime (Timenumber(09,00,00))Set soir = New NotesDateTime (Timenumber(18,00,00))Droad, je dois calculer un temps de traitement. je fais donc la difference entre deux dates, je retire les nuits (50400 secondes)

Re: problème de dates

MessagePublié: 01 Juil 2003 à 10:55
par Raziel
Tu obtiens quoi comme message d'erreur ? Quel est exactement le pb rencontré ?

Re: problème de dates

MessagePublié: 01 Juil 2003 à 11:12
par asx9
pour l'instant ça tourne (avec la dernière modif) mais je n'ai pas les résultats voulus.......à suivre je te tiendrai au courant.

Re: problème de dates

MessagePublié: 01 Juil 2003 à 13:45
par Droad
Si j'ai bien compris:Dim dateDemande, dateValidationdateDemande = doc.getitemvalue("Datedemande")(0)dateValidation = doc.getitemvalue("DateAccepteRefuse")(0)Dim ndateDemande As New NotesDateTime(dateDemande)Dim ndateValidation As New NotesDateTime(dateValidation) Dim deltaJ As Long, deltaS As LongdeltaJ = dateValidation - dateDemandedeltaS = ndateValidation.TimeDifference(ndateDemande) - 50400*deltaJMessagebox deltaS\3600 & "h " & (deltaS Mod 3600)\60 & "min " & ((deltaS Mod 3600) Mod 60) & "s"