Newsgroup: it.comp.appl.access
Titolo: Errore data 2

 Spero di essere chiaro adesso. Ho realizzato questa funzione per il
calcolo dei giorni in mesi considerando anche i 15 giorni, che vengono
calcolati per un mese es. 15g valgono un mese 1 quindi 1 punto, 45
giorni valgono 2 mesi 2punti, 44 giorni valgono 1 mese 1punto, 60
giorni valgono 2 mesi 2punti ecc. Il tutto mi serve per un calcolo
particolare da attribuire a persone, in base ai mesi come descritto.
Spero di essere stato più chiaro
Purtroppo se parto dal 2002 al 2006 tutto OK , ma se la data va dal
1999 o 2000 oppure 2001 al 2006 mi considera un mese in più es.
01/08/200 al 22/02/2006 calcola 68 mesi e non 67 come dovrebbe..
Dove sbaglio?
Sperando di essere stato chiaro ripeto che tutto va bene per le date
dal 2002 al 2006.
Dim a As Double
Dim b As Double
    a = (Me.data_fine - Me.inizio)
'arrotondamento dei 15 giorni
    b = Int([a] / 30) + IIf((([a] / 30) - Int([a] / 30) >= 0.5), 1, 0)
     Me.calcolo = b
 Me.datafine ecc. sono nella form che fa partire il calcolo
sull'evento dopo l'aggiornamento della data me.inizio.

gepp...@gmail.com
 ha scritto:


Dal 01/08/2000 al 22/02/2006 sono esattamente 2031 giorni;
2031/30 = 67 (mesi di 30 gg) col resto di 20 gg... in pratica 67,70
pari a 68 mesi...
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Ok ma i venti giorni sono la somma dell'ultimo del mese il 31 che
riportato negli anni mi crea l'errore dei 20 giorni non attribuibili .
In definitiva i 15 giorni vanno calcolati solo se frazioni di mese non
per intero come nella data 01/08/2000 al 22/07/2006 che sono esttamente
67 mesi i 20gg sono residui non calcolabile , questo è il mio problema.

 b = Int([a] / 30) + IIf((([a] / 30) - Int([a] / 30) >= 0.5), 1, 0)
Prova a scriverla in questa maniera, dato che un anno è di 365 gg quando
non è bisestile..
 b = Int([a] * 12/365) + IIf((([a] * 12/365) - Int([a] * 12/365) >= 0.5),
1, 0)


 ha scritto nel messaggio
news:1158312377....@d34g2000cwd.googlegroups.com...

---------------------------------------------
---------------------------------------------
questo è il 3o thread che apri per lo stesso motivo
se vuoi un aiuto valido
puoi rispondere almeno alle domande che ti vengono fatte.
ripropongo la domanda dell'altro thread a cui non hai risposto
(sperando che tu non ne apra un'altro)
-----------------------------------------------------
gentilmente cosa dovresti ottenere come risultato?
i mesi che si sono fra due date?
o il totale dei giorni, che divisi poi per 30 quello che rimane
se è superiore a 15 diventa 30 (1 mese) e di 45 diventa 60 (2 mesi)?
Puoi chiarire questo?
Ciao
Paolo

Ok ma se fai 01/01/2006 al 16/01/2006 i quindi giorni non li calcola  a
1 punto

Carissimo Paolo penso di essere satao chiaro nelle tre volte che ho
scritto. Comunque se i giorri sono quindici vale un punto es;: 30g 1
punto 45 giorni 2 punti 60 giorni 2 punti  nelle funzione mia mi porta
un resto di 20 giorni che non va considerato percjè rimanenza dei
trentuno di ogni mese. Ti ripeto che titto è ok , come ampiamente
decsrtitto, fino al 2002. ti rallego un abstrat del ttutto, sperando
questa volta di essere stato cìhiaro.
il calcolo dei giorni in mesi considerando anche i 15 giorni, che
vengono calcolati per un mese es. 15g valgono un mese 1 quindi 1 punto,
45 giorni valgono 2 mesi 2punti, 44 giorni valgono 1 mese 1punto, 60
giorni valgono 2 mesi 2punti ecc. Il tutto mi serve per un calcolo
particolare da attribuire a persone, in base ai mesi come descritto.
Spero di essere stato più chiaro
Purtroppo se parto dal 2002 al 2006 tutto OK , ma se la data va dal
1999 o 2000 oppure 2001 al 2006 mi considera un mese in più es.
01/08/200 al 22/02/2006 calcola 68 mesi e non 67 come dovrebbe..
Dove sbaglio?
Sperando di essere stato chiaro ripeto che tutto va bene per le date
dal 2002 al 2006.
Dim a As Double
Dim b As Double
    a = (Me.data_fine - Me.inizio)
'arrotondamento dei 15 giorni
    b = Int([a] / 30) + IIf((([a] / 30) - Int([a] / 30) >= 0.5), 1, 0)
     Me.calcolo = b
 Me.datafine ecc. sono nella form che fa partire il calcolo
sull'evento dopo l'aggiornamento della data me.inizio.
Se non posso rispondere è perchè a volte sono impegnato. Comunque
grazie

 1 punto
Non tagliare tutto il testo del precedente messaggio... 
Il problema è che un anno è di 365 o di 366, mentre con la tua formula
assumi l'anno commerciale che è di 360 gg...
Prova a fare questo ulteriore aggiustamento:
b = Int([a] * 12/365) + IIf((([a] /30) - Int([a] /30) >= 0.5),


Carissimo Paolo lo stesso se fai 01/01/2006 al 16/01/2006 i quindi
giorni non li calcola  a
 1 punto mentre con la mia b = Int([a] / 30) + IIf((([a] / 30) -
Int([a] / 30) >= 0.5), 1, 0) si . Quindi i 15 giorni non vanno
calcolati come dovrebbero. CHE ROGNA stò impazzendo tra foemule e
formulette . Ciao di nuovo grazie


 ha scritto nel messaggio
news:1158315781.2...@k70g2000cwa.googlegroups.com...
Carissimo Paolo penso di essere satao chiaro nelle tre volte che ho
scritto. Comunque se i giorri sono quindici vale un punto es;: 30g 1
punto 45 giorni 2 punti 60 giorni 2 punti  nelle funzione mia mi porta
un resto di 20 giorni che non va considerato percjč rimanenza dei
trentuno di ogni mese. Ti ripeto che titto č ok , come ampiamente
decsrtitto, fino al 2002. ti rallego un abstrat del ttutto, sperando
questa volta di essere stato cěhiaro.
il calcolo dei giorni in mesi considerando anche i 15 giorni, che
vengono calcolati per un mese es. 15g valgono un mese 1 quindi 1 punto,
45 giorni valgono 2 mesi 2punti, 44 giorni valgono 1 mese 1punto, 60
giorni valgono 2 mesi 2punti ecc. Il tutto mi serve per un calcolo
particolare da attribuire a persone, in base ai mesi come descritto.
Spero di essere stato piů chiaro
Purtroppo se parto dal 2002 al 2006 tutto OK , ma se la data va dal
1999 o 2000 oppure 2001 al 2006 mi considera un mese in piů es.
01/08/200 al 22/02/2006 calcola 68 mesi e non 67 come dovrebbe..
Dove sbaglio?
Sperando di essere stato chiaro ripeto che tutto va bene per le date
dal 2002 al 2006.
Dim a As Double
Dim b As Double
    a = (Me.data_fine - Me.inizio)
'arrotondamento dei 15 giorni
    b = Int([a] / 30) + IIf((([a] / 30) - Int([a] / 30) >= 0.5), 1, 0)
     Me.calcolo = b
 Me.datafine ecc. sono nella form che fa partire il calcolo
sull'evento dopo l'aggiornamento della data me.inizio.
Se non posso rispondere č perchč a volte sono impegnato. Comunque
grazie
---------------------------------------
comunque non rispondi ai chiarimenti che ti vengono chiesti,
impara a leggere quello che una persona scrive:
il codice č questo
Dim a As Double
Dim b As Double
Dim C As Double
a = (Me.data_fine - Me.Inizio)
b = Int(a / 30)
C = a Mod 30
Me.calcolo = b + IIf(C >= 15, 1, 0)

 il codice è questo


Caro Pietro comunqu la funzione Mod non fa altro che ripetere quello
che già esiste nella mia. Aveveo già provato non funziona i 15 giorni
non vengono calcolati.
geppo...@gmail.com
 ha scritto:


 ha scritto nel messaggio
news:1158321756....@k70g2000cwa.googlegroups.com...


--------------------------------------
ma neanch'io voglio fare polemica, ci mancherebbe,
solo che tu conosci il problema  e se cerchi aiuto
il problema lo deve capire anche l'altro.

Pietro non so come eliminare quei malidettissimi 15 con date che vanno
dal 2002 all'indietro. Il problema stà che mi sommai 31 di ogni mese
con i periodo lunghi.
Infattise inserisco 01/08/2000 al 22/02/2006 i giorni sono 2031 che
divisi per 30 diventano 67 mesi con resto di 20 giorni, questi ultimi
non devono essere calcolati perchè rimanenze dai 31 giorni. Quindi si
devono calcolare solo 67 in una delle funzioni che mi hai mandato va
bene  però appena inserisci un periodo breve es: 01/01/2006 al
15/01/2006 i quindici giorni non vengono calcolati. però con la mia
funzione ok. Spero di avercti delucitato un po  il problema. CIAO  e
speriamo che me la cavi
