problème de dates

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Re: problème de dates

Messagepar asx9 » 01 Juil 2003 à 10:14

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
asx9
 

Re: problème de dates

Messagepar Raziel » 01 Juil 2003 à 10:28

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")
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: problème de dates

Messagepar Droad » 01 Juil 2003 à 10:29

Ouch ! J'ai un peu de mal à suivre. Qu'est ce que te veux calculer, exactement ?
Droad
 

Re: problème de dates

Messagepar asx9 » 01 Juil 2003 à 10:50

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)
asx9
 

Re: problème de dates

Messagepar Raziel » 01 Juil 2003 à 10:55

Tu obtiens quoi comme message d'erreur ? Quel est exactement le pb rencontré ?
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: problème de dates

Messagepar asx9 » 01 Juil 2003 à 11:12

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.
asx9
 

Re: problème de dates

Messagepar Droad » 01 Juil 2003 à 13:45

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"
Droad
 

Précédent

Retour vers Développement