Discussione:
Calcolo ore
(troppo vecchio per rispondere)
l***@libero.it
2007-02-12 10:32:06 UTC
Permalink
Buongiorno,

ho due campi orari in un file definiti 4,0 che sono ora inizio e ora
fine.

In una routine devo calcolare la differenza tra queste due ore (forse
li devo prima convertire in ora?) e successivamente sommarli in un
campo definito 5,2 .

Come posso fare?

Grazie per chi mi vorrà aiutare.

Miri
Danilo Cussini
2007-02-12 10:58:11 UTC
Permalink
Post by l***@libero.it
ho due campi orari in un file definiti 4,0 che sono ora inizio e ora
fine.
In una routine devo calcolare la differenza tra queste due ore (forse
li devo prima convertire in ora?) e successivamente sommarli in un
campo definito 5,2 .
Li devi convertire in formato ora con la funzione %TIME(), poi con
%DIFF() ottieni la differenza tra le due ore. Leggi il capitolo "Date
Operations" del manuale "ILE RPG Reference".
l***@libero.it
2007-02-12 12:02:07 UTC
Permalink
Aiutoooooooooooooooooooo

non ci riesco.
Nel file ho i due campi (ora inizio e ora fine) valorizzati ad esempio
1,100 e 1,200. Non riesco a convertirli in ora e fare la differenza
aiuttttttttttttttttttoooooooooooooo per poi sommarli in un campo di
comodo che sar� il totale delle ore

Miri
Post by Danilo Cussini
Post by l***@libero.it
ho due campi orari in un file definiti 4,0 che sono ora inizio e ora
fine.
In una routine devo calcolare la differenza tra queste due ore (forse
li devo prima convertire in ora?) e successivamente sommarli in un
campo definito 5,2 .
Li devi convertire in formato ora con la funzione %TIME(), poi con
%DIFF() ottieni la differenza tra le due ore. Leggi il capitolo "Date
Operations" del manuale "ILE RPG Reference".
Dr.UgoGagliardelli
2007-02-12 12:11:04 UTC
Permalink
Post by l***@libero.it
Aiutoooooooooooooooooooo
non ci riesco.
Nel file ho i due campi (ora inizio e ora fine) valorizzati ad esempio
1,100 e 1,200. Non riesco a convertirli in ora e fare la differenza
aiuttttttttttttttttttoooooooooooooo per poi sommarli in un campo di
comodo che sarà il totale delle ore
Per te cosa significa 1,200 in termini di orario, ovvero quale dovrebbe
essere l'ora convertita?
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
l***@libero.it
2007-02-12 12:54:38 UTC
Permalink
Post by Dr.UgoGagliardelli
Post by l***@libero.it
Aiutoooooooooooooooooooo
non ci riesco.
Nel file ho i due campi (ora inizio e ora fine) valorizzati ad esempio
1,100 e 1,200. Non riesco a convertirli in ora e fare la differenza
aiuttttttttttttttttttoooooooooooooo per poi sommarli in un campo di
comodo che sarà il totale delle ore
Per te cosa significa 1,200 in termini di orario, ovvero quale dovrebbe
essere l'ora convertita?
Buongiorno Dott.Gagliardelli,

a suo tempo chi ha creato il file ha creato i due campi (ora inizio e
ora fine) lunghi 4 con zero decimali. per cui i dati allo stato
attuale vengono cosi' visualizzati (in quel file) ad esempio:
orainizio 1,100 (che vorrebbe dire 11:00)
ora fine 1,200 (che vorrebbe dire 12:00)

per cui per questi due campi devo ottenere una differenza in ore/
minuti e sommarli in un campo per il risultato finale.

Spero di essere stata chiara.

Grazie. Miri
Post by Dr.UgoGagliardelli
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
Dr.UgoGagliardelli
2007-02-12 13:40:41 UTC
Permalink
Post by l***@libero.it
Post by Dr.UgoGagliardelli
Post by l***@libero.it
Aiutoooooooooooooooooooo
non ci riesco.
Nel file ho i due campi (ora inizio e ora fine) valorizzati ad esempio
1,100 e 1,200. Non riesco a convertirli in ora e fare la differenza
aiuttttttttttttttttttoooooooooooooo per poi sommarli in un campo di
comodo che sarà il totale delle ore
Per te cosa significa 1,200 in termini di orario, ovvero quale dovrebbe
essere l'ora convertita?
Buongiorno Dott.Gagliardelli,
a suo tempo chi ha creato il file ha creato i due campi (ora inizio e
ora fine) lunghi 4 con zero decimali. per cui i dati allo stato
orainizio 1,100 (che vorrebbe dire 11:00)
ora fine 1,200 (che vorrebbe dire 12:00)
per cui %time(ora*100) da' come risultato un valore di tipo t, per
calcolare la differenza tra due orari espressa in minuti quindi sara'
minutes = %diff(%time(ora_fine*100):%time(ora_inizio*100):*minutes)
Il valore numerico ottenuto potra' essere trattato con l'operatore
%div(minutes:60) per ottenere le ore e %rem(minutes:60) per ottenere i
minuti. Se il "risultato finale" dev'essere nella stessa forma degli
orari (hhmm) allora finale=%div(minutes:60)*100 +%rem(minutes:60)
Post by l***@libero.it
per cui per questi due campi devo ottenere una differenza in ore/
minuti e sommarli in un campo per il risultato finale.
Spero di essere stata chiara.
Grazie. Miri
Post by Dr.UgoGagliardelli
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
Dr.UgoGagliardelli
2007-02-12 14:01:48 UTC
Permalink
Post by Dr.UgoGagliardelli
Post by l***@libero.it
Post by Dr.UgoGagliardelli
Post by l***@libero.it
Aiutoooooooooooooooooooo
non ci riesco.
Nel file ho i due campi (ora inizio e ora fine) valorizzati ad esempio
1,100 e 1,200. Non riesco a convertirli in ora e fare la differenza
aiuttttttttttttttttttoooooooooooooo per poi sommarli in un campo di
comodo che sarà il totale delle ore
Per te cosa significa 1,200 in termini di orario, ovvero quale dovrebbe
essere l'ora convertita?
Buongiorno Dott.Gagliardelli,
a suo tempo chi ha creato il file ha creato i due campi (ora inizio e
ora fine) lunghi 4 con zero decimali. per cui i dati allo stato
orainizio 1,100 (che vorrebbe dire 11:00)
ora fine 1,200 (che vorrebbe dire 12:00)
per cui %time(ora*100) da' come risultato un valore di tipo t, per
calcolare la differenza tra due orari espressa in minuti quindi sara'
minutes = %diff(%time(ora_fine*100):%time(ora_inizio*100):*minutes)
Il valore numerico ottenuto potra' essere trattato con l'operatore
%div(minutes:60) per ottenere le ore e %rem(minutes:60) per ottenere i
minuti. Se il "risultato finale" dev'essere nella stessa forma degli
orari (hhmm) allora finale=%div(minutes:60)*100 +%rem(minutes:60)
P.S. le bif %time e %diff sono comparse in una versione relativamente
recente dell'RPGile, precedentemente (ma e' ancora valido) le operazioni
su date e orari si facevano con ADDDUR e SUBDUR, le conversioni da e a
data/orario con MOVE.
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
Danilo Cussini
2007-02-12 13:31:07 UTC
Permalink
Post by l***@libero.it
Nel file ho i due campi (ora inizio e ora fine) valorizzati ad esempio
1,100 e 1,200. Non riesco a convertirli in ora e fare la differenza
aiuttttttttttttttttttoooooooooooooo per poi sommarli in un campo di
comodo che sarà il totale delle ore
tOraInizio = %TIME(nOraInizio * 100);
tOraFine = %TIME(nOraFine * 100);
differenzaMinuti = %DIFF(tOraFine : tOraInizio : *MINUTES);
ore = %DIV(differenzaMinuti : 60);
minuti = %REM(differenzaMinuti : 60);
Loading...