Comunidad de diseño web y desarrollo en internet online

La accion while!?

Citar            
MensajeEscrito el 25 Jul 2006 09:50 pm
Hola :P
Estaba viendo tutoriales en una página y me encontré con uno para hacer un reloj digital que muestre la hora en 12 horas y que ponga si es PM o AM pero hay una parte del código que no entiendo :? alguien me la puede explicar??
Es esta:

Código :

while(hours >12){
hours = hours - 12;
}


Por si necesitan saber el código completo es este:

Código :

time=new Date(); // time object
var seconds = time.getSeconds()
var minutes = time.getMinutes()
var hours = time.getHours()
if (hours<12) {
ampm = "AM";
} 
else{
ampm = "PM";
}
while(hours >12){
hours = hours - 12;
}
if(minutes<10)
{
minutes = "0" + minutes;
}
if(seconds<10)
{
seconds = "0" + seconds;
}
myTime12 = hours + ":" + minutes + " "+ ampm;

Gracias! Ojalá me puedan ayudar! ;)

Por kike.1292

130 de clabLevel



1 ejemplo

Genero:Masculino  

Mexico D.F.

safari
Citar            
MensajeEscrito el 25 Jul 2006 10:02 pm
Me parece que el formato que maneja es de 12 horas y por ende al llegar a 12, la siguiente hora deberia ser la 13, pero ahi se le resta
mientras la hora sean mayores a 12 que loas horas sean horas - 12
si son las 13 horas entonces, 13 - 12 = la 1 de la tarde y asi!!!
si son las 14 horas entonces, 14- 12 = las 2 de la tarde y asi!!!

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 25 Jul 2006 10:28 pm

ramiro_olvera escribió:

Me parece que el formato que maneja es de 12 horas y por ende al llegar a 12, la siguiente hora deberia ser la 13, pero ahi se le resta
mientras la hora sean mayores a 12 que loas horas sean horas - 12
si son las 13 horas entonces, 13 - 12 = la 1 de la tarde y asi!!!
si son las 14 horas entonces, 14- 12 = las 2 de la tarde y asi!!!

Si. Lo que no tiene mucha lógica es colocar ese código dentro de un while... :?
lo más normal sería haberlo colocado dentro del if.

Código :

if (hours<12) {
   ampm = "AM";
} else {
   hours -= 12;
   ampm = "PM";
}

:wink:

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 25 Jul 2006 10:53 pm
Gracias por sus respuestas ya entendí! ;)

Por kike.1292

130 de clabLevel



1 ejemplo

Genero:Masculino  

Mexico D.F.

safari
Citar            
MensajeEscrito el 26 Jul 2006 07:44 am
en actionscript existen los while????

Por shenya

53 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 26 Jul 2006 10:15 am

shenya escribió:

en actionscript existen los while????

Si... aunque no los use nadie, aun existen...

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 26 Jul 2006 11:23 am

Mix Macster Zguillez escribió:

shenya escribió:

en actionscript existen los while????

Si... aunque no los use nadie, aun existen...


¿Qué nadie los usa? JUAS, que tu no los uses no significa que no se usen.
Un while sustituye a un for, siempre y cuando se desconozcan el principio o el final de un proceso o variable.

Por ejemplo nos dan un número entero y necesitamos saber cual es el número primo más proximo que hay. Podríamos utilizar un for, desde ese número hasta unos 10000 más pero quizás nos quedemos cortos, para ellos pondríamos un while "mientras no se encuentre un primo", si bien es cierto que podemos forzar un for para que actue como un while

for(var i:Number = 0; i<5;i++) {
i--;
};

tendríamos que romper el for con un break; cuando hallemos la solución.
WHILE es una estructura básica de casi todos los lenguajes de programación, al igual que FOR.

En este caso se podría haber resulto de otras formas,
*- Sabiendo que las horas van de 0 a 23, sólo tendríamos que restarle UNA vez a "hours" esos "12"
*- Suponiendo que las horas fueran más de 24 y tuviéramos que restar más de una vez, podríamos haber usado el operando % que devuelve el resto, por ejemplo
13%12 = 1, 14%12 = 2; 37%12 = 1 (37-12= 25 , 25-12 = 13, 13-12 = 1)
aunque en este caso no nos indicaría si es AM o PM

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

clabbrowser
Citar            
MensajeEscrito el 26 Jul 2006 12:02 pm
Si, tienes toda la razón

*_conejo --> :bate: :cry: <-- zguillez

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

safari
Citar            
MensajeEscrito el 26 Jul 2006 02:23 pm
pues pa darle un sobresaliente al prof que tube en programacion... jamas nos hablo de que existiera un while... en fins acias por la revelacion!!!

Por shenya

53 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 26 Jul 2006 03:14 pm
Shenya, realmente en flash no es muy aconsejable utilizar whiles, como ya dije, no se sabe "cuanto va a durar" en un principio, si a eso le añadimos que Flash ejecutará todos los ciclos del while seguidos (sin frames por enmedio) tenemos una bomba de relojería, ya que un while(true) { trace("hola"); }; colgaría nuestro script.

En otros lenguajes como java o c, un while(true) { print "hola"; }; no lo cuelga, por lo que se puede utilizar con más libertad

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

clabbrowser
Citar            
MensajeEscrito el 26 Jul 2006 03:21 pm
emmm eso pasa con todos los bucles, no solo con el while, y que no se cuelga en java o c? :?


Pruebalo solamente ;)



saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 26 Jul 2006 03:27 pm
pues no se maikel, de C la verdad se más bien poco, pero lo único que hice, un mini prg para buscar primos, creo recordar que era un while y llegué a un par de millones y tan tranquilo seguía escupiendo datos por consola.

En java te aseguro que los bucles no se cuelgan, al menos no de la forma en la que flash lo hace. He implementado algoritmos "serios" para trabajar con matrices de 25x25 o más y no he tenido problemas nunca. No sé si efectivamente un while(true) con un print lo colgaría o no.

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

clabbrowser
Citar            
MensajeEscrito el 26 Jul 2006 04:02 pm
Ehhh a ver, entendemos colgar es que entra a un bucle infinito? , que siga ejecutándose esa es la idea de hacer un while(true) con toda la intención, es porque queremos que se ejecute indefinidamente y en realidad es casi que fortuito el punto de parada, entonces lo que hacemos es detener el bucle con un break, ahora todos los lenguajes actuan igual, el flash player hace algo muy particular al preguntarle al usuario que si desea detener el script[algo muy c00l por cierto], pero no es que se cuelgue... sino que previene al usuario, y lo hace cuando el script itere tantas veces sin la oportunidad de salir del bucle.

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 26 Jul 2006 04:14 pm
con colgar me refería a que la máquina deja de responder (o lo hace a una velocidad infinitesimal xD xD) a eso me refiero. Eso "aún" no me ha pasado con Java, pero si con AS...

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

clabbrowser
Citar            
MensajeEscrito el 26 Jul 2006 11:31 pm
Nota: El for realmente es un while, del tipo:

Código :

//For común para el programador
for(var i=0; i<10; i++){
  //doSome
}


//For real para el lenguage
var i=0;
while(i<10){
i++;
//doSome
}
//For real para el lenguage

:wink:


Eso de que se cuelga, efectivamente es un problema, pero no es por usar while o no usarlo. Es mas bien de la forma como trabaja el flash player. Igual se colgaría con un: for(i=0; (i<10); i--)

Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 26 Jul 2006 11:44 pm
sip, por eso decia que con todos los bucles es lo mismo, como cita dano, esto tambien por hacerse

Código :

i=0;
for (1;1;){
   trace(i);
   if (i++>10){
      break;
   }
}


y bueno el do..while, ya tiene el while inmerso, su sintaxis lo tiene bien explicito, en lenguajes como c, java, php, as2, etc. se puede reconocer facilmente que los bucles son muy parecidos y que funcionan con una condicion de while, en pascal es un poco mas dificil detectarlo, pero al final es igual.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 12 Ago 2006 10:15 am
Hola he echo ese reloj que han indicado al principio, pero se me queda parado, como hacer para que en la web siga el movimiento, es decir siga marcando los minutos?

Por mclaud

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Ago 2006 01:36 am
lo tienes que poner en un movieclip con 2 frames el codigo lo pones en la frame 1 y en la 2 pones gotoAndPlay(1)

Por kike.1292

130 de clabLevel



1 ejemplo

Genero:Masculino  

Mexico D.F.

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.