Originariamente inviato da enzino48
3) in un'altra TextBox (txtOra) mi viene indicata la differenza oraria con l'Italia (ora solare, es. +6);
4) in una TextBox (txtOraInserita) inserisco un'ora qualsiasi che dovrebbe sommarsi (o sottrarsi) alla differenza oraria (txtOra) con l'Italia;
5) tramite un pulsante "CALCOLA L'ORA" dovrebbe inserirmi in una TextBox (txtOraCercata)
Ok, fin qui è chiaro.
Originariamente inviato da enzino48
Nel mio form ho già una TextBox che mi indica il giorno e l'ora del sistema.
Scusa, ma a cosa serve?
Possiedi già tutte le informazioni utili, quindi questa informazioni è inutile.
Originariamente inviato da enzino48
Inserdendo nel mio cmdCalcolaOra la formula
txtOraCercata = DateDiff("h", txtOra, txtOraInserita) / 24
mi da la differenza oraria con l'Italia (txtOra) e quella da me inserita (txtOraInserita) in ore (+2, -1, +6, ecc.) ma non l'ora in ore, minuti, secondi ed il giorno.
a) è ovvio, dato che nella DateDiff() imposti il parametro 'h' ti restituisce solo l'ora
b) non capisco perchè tu voglia ottenere la differenza... quella l'hai già!!!
Mi sembra, invece, che tu debba (voglia) conoscere l'orario diverso in base a txtOra, quindi dovrai usare la DateAdd():
codice:
txtOraCercata.Text = DateAdd("h", txtOra.Text, txtOraInserita.Text)
in txtOra, puoi mettere qualsiasi valore +6, -3, ...
Esempio, inserendo
codice:
txtOra.Text = 6
txtOraInserita.Text = 15:15:22
otterremo l'ora calcolata
txtOraCercata.Text = 21.15.22
Attenzione che se la somma o sottrazione restituisce un valore che va oltre il range delle 24 ore la DateAdd() restituirà, correttamente, oltre all'ora anche la data.
Infatti, se sostituiamo in txtOra.Text il 6 con 13 otteniamo:
codice:
txtOraCercata.Text = 31/12/1899 4.15.22
per cui sarebbe il caso di usare la funzione Format() per restringere l'output solo sull'ora.
S.A.C.A.C.T.
Sempre Ammesso Che Abbia Capito Tutto