Newsgroup: it.comp.appl.access
Titolo: funzione addiziona solo giorni lavorativi

ciao a tutti, ho la necessità di creare una funzione che partendo da
una data mi addizioni alla stessa un determinato numero di giorni,
considerando nel calcolo solo i gg lavorativi. Riprendendo la funzione
calcolo gg lavorativi presente sul sitocomune ho scritto:
Public Function addizgglav(DataIniziale As Date, gglav As Integer) As
Date
 
   Dim DataDaContar As Date, accum As Integer
 
   DataDaContar = DataIniziale - 1
            If Weekday(DataDaContar) <> 7 Or Weekday(DataDaContar) <>
1 Then
            Do
            DataDaContar = DataDaContar + 1
            accum = accum + 1
            Loop Until accum = gglav
            End If
         addizgglav = DataDaContar
End Function
Però il risultato che ottengo è sbagliato! Esempio: data iniziale
=03/02/03 gg=10
dovrei ottenere 14/02/03 ed invece ottengo 12/02/03.
Dove sbaglio? Grazie e ciao.

...

Sob! Nessuno risponde al mio messggio...ROBERTO DA CASA dove sei?
Ciao.

 Ciao.
Ora posso tornare al bar?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Ora posso tornare al bar?
No. La tua presenza e' richiesta h24 altrimenti sarai LICENZIATO!
--
a.cara 
Togli qualcosa dall'email

 a.cara


 dal ragazzo del bar.
Ecco qua, caldo, caldo...
20 Euri grazie...
Antonio

 Antonio



Ueh!
Ho lasciato il banco del bar, con 30 avventori davanti.
Sono uscito che nevicava, ho incontrato una squinzia che mi si voleva
trombare e ho dovuto rinunciare, mi sono fatto 1 chilometro a piedi, 8 piani
di scale senza ascensore e pensi che non vada bene?!?!?!
Hai ragione, 30 Euri!!!
Antonio

 ha scritto nel messaggio
news:7BQ2a.114314$ZE.31...@twister2.libero.it...

Questo è l'esempio di cosa succede a chi non sa afferrare al volo gli affari
che gli passano davanti!
Proprio vero che non c'è limite al peggio! :-)


...

Grazie Roberto, come al solito la soluzione che suggerisci è perfetta!
Se hai 5 minuti di tempo, visto che sono un scrittore di codice
moooolto in erba, puoi evidenziarmi dove ho sbagliato? (a parte il
discorso delle festività che avevo omesso volontariamente per
chiarezza di esposizione).
Grazie ancora e.......AVVERTICI QUANDO VAI A PRENDERE IL CAFFE' così
evitiamo di sbavare davanti al monitor in attesa di una tua
risposta!!!! ;-) ;-) ciao.

 Antonio
;-D
ciao MAssimiliano
 
MAssimiliano
--------------------------------
Inviato via 
http://usenet.libero.it

 chiarezza di esposizione).
[CUT]
Così come hai scritto la tua routine il risultato sarà sempre uguale alla
data di partenza più i giorni meno uno (nel tuo esempio 03/02/03 - 1 + 10 =
12/02/03).
Tutto colpa della tua If: due confronti per diverso (<>) di una stessa
variabile messi in OR in una If restituiscono SEMPRE un valore booleano
True, in quanto una delle due condizioni si verifica sempre.
Se avessi usato l'operatore AND sarebbe stato ugualmente logicamente
inesatto e ti avrebbe restituito un risultato errato in quanto la If avrebbe
restituito sempre un valore False e quindi il risultato sarebbe sempre stato
uguale alla data iniziale meno uno.
Avresti dovuto inserire la If all'interno del ciclo Do ... Loop e non
viceversa ed inoltre l'operatori dei due confronti sarebbero dovuto essere
l'uguale (=) e non il diverso (<>).
