13 messaggi dal 06 settembre 2002
Non ho idea di come risolverver il seguente problema:

sto realizzando un modulo di prenotazione di un albergo
con le istruzioni if...then controllo le date e a seconda che rientrino ono all'interno di un periodo piuttosto che di un altro aplico una tariffa specifica. (alta, media, bassa)

il problema nasce al momento del calcolo dei giorni, in quanto se rientrano all'interno di un periodo è tutto ok ma se sono a cavallo di due periodi come posso fare?

AIUTOOOOOOOOO!


11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao!
qual è esattamente il tuo problema? non riesci a far funzionare lo script o non sai che tariffa applicare? Nel secondo caso dovresti chiedere all'albergo, magari non accettano soggiorni a cavallo di due periodi.
Oppure se uno si fa una vacanza a cavallo tra la media e l'alta stagione, calcola il conto della permanenza sommando i costi dei singoli giorni. Questo fallo sempre, per avere maggiore coerenza di codice.

Fasce: Novembre - Febbraio bassa stagione
Marzo - Giugno media stagione
Luglio - Ottobre alta stagione.

Esempio 1 - Soggiorno in media stagione di 1 settimana dal 27/02 al 06/03 (a cavallo tra bassa e media)

'settiamo la data di inizio e fine del soggiorno
datai = CDate(27/02/02)
dataf = CDate(06/03/02)

'Settiamo i costi di un giorno di permanenza nella relativa fascia
Dim tariffa_bassa
Dim tariffa_media
Dim tariffa_alta
tariffa_bassa = 20
tariffa_media = 30
tariffa_bassa = 45

Dim spesasoggiorno
spesasoggiorno = 0

'Giorno per giorno, nell'arco della durata della vacanza sommiamo i costi.
'Creiamo intanto una variabile che conterrà il giorno da esaminare
Dim tempdata
tempdata = datai

while not tempdata = dataf
'Esaminiamo a quale fascia appartiene la data, prendendo il numero del mese da 1 a 12
Select Case CInt(Month(tempdata))
Case 1:
'Aumento di tot il prezzo del soggiorno
spesasoggiorno = spesasoggiorno + tariffa_bassa
Case 2:
spesasoggiorno = spesasoggiorno + tariffa_bassa
Case 3:
spesasoggiorno = spesasoggiorno + tariffa_media
'Eccetera
End select

'Importante: aumentiamo di un giorno la data, se no il ciclo while continua per sempre e il poraccio spende una cifra!
tempdata=DateAdd("d", 1, tempdata)
wend


'Scriviamo quanto spende
Response.write(spesasoggiorno)


A grandi linee dovrebbe funzionare... potrebbero esserci degli errori di sintassi non ho controllato


-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making
13 messaggi dal 06 settembre 2002
grazie, ora prova a tirar fuori qualcosa, anche se uno dei problemi sta nel fatto che le stagioni iniziano e finiscono in mezzo ai mesi e non alla fine

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.