Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Somma di ore e minuti

652 views
Skip to first unread message

Carlo Penso

unread,
May 19, 1998, 3:00:00 AM5/19/98
to

Come fareste voi a sommare correttamente le ore e i minuti di una serie di
record dato che le funzioni di somma in access non lo permettono?
Grazie per i consigli

--
Automatic posted from mail.dex-net.com [194.184.44.19]
via Mailgate Server - http://www.mailgate.org

Trx

unread,
May 19, 1998, 3:00:00 AM5/19/98
to

"Carlo Penso" ha scritto nel messaggio
<01bd8309$c45cc3c0$LocalHost@carlo>...

>Come fareste voi a sommare correttamente le ore e i minuti di una
serie di
>record dato che le funzioni di somma in access non lo permettono?
>Grazie per i consigli

Se si tratta di campi di tipo data/ora, allora è sufficente sommarli.
Ricorda che un campo di tipo data/ora è formato da numero la cui parte
intera rappresenta il n. di giorni a partire dalla data di riferimento
e la cui parte decimale esprime l'orario come frazione di giorno. Per
maggiori dettagli, ricerca il mio precedente messaggio "Calcoli con le
ore (Messaggio Lungo)".
Quando hai una data/ora che è un intervallo di tempo (per es. la somma
di diversi orari), puoi da essa ricavare tutte le informazioni che
vuoi con i seguenti semplici calcoli:

OreTotali = Int(CSng(intervallo * 24))
MinutiTotali = Int(CSng(intervallo * 1440))
SecondiTotali = Int(CSng(interval * 86400))

Giorni = Int(CSng(intervallo))
Ore = OreTotali Mod 24
Minuti = MinutiTotali Mod 60
Secondi = SecondiTotali Mod 60

Oppure:
Ore = DateDiff("h",0,Intervallo)
Minuti = Minute(Intervallo)
Secondi = Second(Intervallo)

Se hai bisogno di chiarimenti, fammi sapere.

Salutissimi
--
________
\ /\ /
\/ \/ T R X
/\ /\ -------- (c)
/ \/ \
^^^^^^^^


Emanuele Cesena

unread,
May 19, 1998, 3:00:00 AM5/19/98
to

prendi la prima ora e la converti in 2 interi ore1 e minuti1
prendi la seconda ora e la converti in 2 interi ore2 e minuti2

temp1 = ore1 * 60 + minuti1
temp2 = ore2 * 60 + minuti2
temp1 = temp1 + temp2
ore = int(temp1/60)
minuti = temp1 - ore

ore e minuti li metti in una var di tipo data/ora e la funzione ti
restituisce questo valore.
--
Emanuele Cesena
d.a.m...@iol.it

ICQ n° #10570672


G.Paolo Bizzaro

unread,
May 19, 1998, 3:00:00 AM5/19/98
to

"Carlo Penso" ha scritto nel messaggio
<01bd8309$c45cc3c0$LocalHost@carlo>...
>Come fareste voi a sommare correttamente le ore e i minuti di una serie di
>record dato che le funzioni di somma in access non lo permettono?
>Grazie per i consigli

Puoi sommare i valori dei tuoi records come fossero numeri normali, ma
visualizzare il risultato elaborato dalla seguente funzione:

Public Function CHm$(dataora)
CHm$ = ""
On Error Resume Next ' per prevenire dataora null
minuti& = dataora * 24 * 60
ore& = minuti& \ 60: minuti& = minuti& - ore& * 60
CHm$ = CStr(ore&) & ":" & IIf(minuti& < 10, "0", "") & CStr(minuti&)
On Error GoTo 0
End Function

Alla funzione dovrai passare come parametro la somma, ed avrai come output
il formato hh:mm, con hh anche superiore alle 24 ore, ad esempio:
MsgBox(CHm(CVDate("23:30")+CVDate("10:00"))) ti visualizzerà 33:30

Ciao

G.Paolo Bizzaro - g...@rsadvnet.NOSPAM.it

0 new messages