Newsgroup: it.comp.java
Titolo: intervalli

ciao a tutti
devo fare uno strano algoritmo per dei listini per cui mi serve fare 
delle elaborazioni su degli intervalli numerici ( [0-99], ecc). Sapete 
se ci sono librerie a disposizione e se sono valide? Dovrei fare della 
roba tipo 'intervallo a interseca intervallo b?' e operazioni simili
e vorrei evitare di riscrivere l'acqua calda
bye e grazie
DKano

DKano ha scritto:

Vediamo in un'applicazione e-commerce sviluppata non molto tempo fa...
o) I listini sono organizzati su tre livelli gerarchici: base, per
cliente, 
   promozioni.
o) Per ciascun livello, a ciascun prodotto possono essere attribuiti 
   prezzi per intervalli di quantita' 
   (es. da 1 a 10 pezzi 10 euro, da 11 a 20 9 euro, ecc.)
o) Dato un prodotto e la relativa quantita' richiesta, il prezzo di 
   vendita viene determinato in base alla regola:
   - se c'e' un prezzo di promozione per la quantita' richiesta, usa quello
   altrimenti
   - se c'e' un prezzo specifico per il cliente e per la quantita'      
     richiesta, usa quello
   altrimenti
   - usa il prezzo base per la relativa quantita' 
     (che DEVE sempre esistere in base a vincoli di data entry!)
Il problema da risolvere e' questo:
Per ogni prodotto, ciascun livello puo' definire range di prezzi per
quantita' non completi, come ad esempio:
- prezzo base: 1-99999 pz --> 10 euro
- prezzo cliente: da 100-199 pz --> 8 euro
- prezzo cliente: da 200-99999 pz --> 7,50 euro
- promozione: da 500-1999 pz in su --> 7 euro
- promozione: da 2000-99999 pz in su --> 6 euro
 
Sul catalogo on-line, quando un cliente accede ai dettagli di 
quel prodotto, gli viene presentata una tabella prezzi del tipo:
   1-99    -->  10,00 euro
 100-199   -->   8,00 euro
 200-499   -->   7,50 euro
 500-1999  -->   7,00 euro
2000-99999 -->   6,00 euro
L'algoritmo dove produrre la tabella prezzi di cui sopra componendo
i dati definiti sui tre livelli, indipendentemente dalla presenza 
o meno di "buchi" negli intervalli di quantita'.
L'unico vincolo e' che, a livello dei prezzi base, si ha sempre
una ricopritura completa dell'intervallo quantita' ammesso (nel mio
caso era 1-99999).
Devi fare qualcosa si simile?
Ciao!
Roberto
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Devi fare qualcosa si simile?
Ovviamente no. Potrei azzardare una "legge di DKano sui listini" (o 
"congettura", per modestia) : "Non esistono due aziende sulla Terra che 
trattano i listini nel medesimo modo."
Devo fare qualcosa di cui non ho ancora bene le specifiche, che comunque 
prevede l'annullamento di righe vecchie in caso altre più "giovani" 
abbiano determinate sovrapposizioni di gamma. Al di là delle specifiche 
esatte, che prima o poi avrò, comunque sono certo di dover fare delle 
operazioni matematiche sugli intervalli per cui mi piacerebbe usare 
qualcosa di matematico già fatto; ho provato a vedere commons-math di 
apache ma mi pare che tutto ha tranne gli intervalli.
bye
DKano

 DKano
Anche io avevo cercato qualcosa di gia' pronto sul quale basarmi,
ma alla fine ho fatto tutto "a manina" perche' non avevo trovato
nulla di utile.
Quando avrai specifiche piu' precise magari posta qualcosa: puo'
essere che qualcuna delle mie librerie possa tornarti utile...chissa'...


Prova le Commons Lang, in particolare guarda il package 
org.apache.commons.lang.math:
http://jakarta.apache.org/commons/lang/api/index.html
-- 
  -- + Setaceous Pig + --
http://www.megadix.org/
http://www.jroller.com/page/megadix/

 
http://jakarta.apache.org/commons/lang/api/index.html
Grande jakarta commons! Ovviamente io avevo visto nel "commons" 
sbagliato, grazie
bye
DKano
PS anche loro però, a fare un commons-math e un commons-lang-math...

 essere che qualcuna delle mie librerie possa tornarti utile...chissa'...
Grazie, mi hanno consigliato jakarta commons (lang.math) che mi sembra 
abbiano il necessario, vado a studiarmele; in caso non vadano bene mi 
rifarò vivo
bye
DKano

 rifarņ vivo
Si', scusa, anche io a suo tempo le avevo guardate, ma
me ne ero dimenticato perche' non erano sufficienti per quello
che dovevo fare...
