Jump to content

aiuto algoritmo


sterla

Recommended Posts

ciao sono alle prime armi e dovrei in un algoritmo trasformare una certa quantità di secondi in ore, minuti e secondi

se qualcuno mi può aiutare grasie miles

Link to comment
Share on other sites

Dunque. Se S sono i secondi

hh=trunc(S/3600)
S=S-h*3600
mm=trunc(S/60)
ss=S-mm*60

Dove hh=ore, mm=minuti, ss=secondi e trunc tronca un numero decimale (niente arrotondamento)

EDIT: in ufficio dovrei avere una versione + ottimizzata wink.gif

Edited by johndoe
Link to comment
Share on other sites

grazie mille

pultroppo però se inseisco un valore tipo 10000, mi dà 3 ore, -13 minuti, -20 secondi, o metto 100 sec e mi dà 2 min e -20 sec invece di 1 min e 40 sec

qualche consiglio?

ah poi iio lo stò facendo in visual basic su excel e il trunc nn lo uso

ciao e grasie

Edited by sterla
Link to comment
Share on other sites

In VB su Excel se non sbaglio basta che dividi tutto per 100000 e poi gli chiedi di rappresentarlo come ora biggrin.gif

Comunque, al posto di trunc c'è Fix

Chiaramente se non usi trunc (Fix) l'algoritmo sbarella. 100 secondi infatti ti deve dare 0h, 1 min (100/60 1 e qualche cosa, non capisco come ti venga 2) e 40 sec.

Link to comment
Share on other sites

si ma ma mi viene 2 minuti e poi -20 secondi xkè 100 sec. sono 2m-20

Edited by sterla
Link to comment
Share on other sites

non conosco bene vb, cmq devi usare il corrispettivo vb di mod... mod (in turbo pascal, non mi ricordo com'è in c++ azz... faccio schifo... mi sembra sia %... cmq vabbè è solo una convenzione e in vb sarà sicuramente diverso) si usa per sapere il resto di una divisione... per esempio 5 mod 2 = 1 (si usa infatti spesso per sapere se un numero è pari o dispari)... in questo caso io farei così:

hh=S/3600;

S=S%3600;

mm=S/60;

ss=S%60;

così dovrebbe andare imho

Link to comment
Share on other sites

hh=S/3600;

Di questo devi prendere la parte intera troncata (Fix)
S=S%3600;

Che è equivalente a S-hh*3600, quindi alla fine hai proposto la stessa cosa tongue.gif
Link to comment
Share on other sites

hh=S/3600;

Di questo devi prendere la parte intera troncata (Fix)
S=S%3600;

Che è equivalente a S-hh*3600, quindi alla fine hai proposto la stessa cosa tongue.gif

290955[/snapback]

con la differenza che nel modo che ho detto io non si può andare in negativo wink.gif

Link to comment
Share on other sites

mamma mia vb...

adesso lo stanno rivoltando come un calzino, ma si devono portare dietro per compatibilità tutta la sozzeria vecchia...

piuttosto usate visual j# se proprio non volete imparare c/c++ asd.gif

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.