Comunidad de diseño web y desarrollo en internet online

Devolver días, meses y años.....

Citar            
MensajeEscrito el 21 Jun 2006 09:44 pm
Tengo el siguiente code para sumar a partir de una fecha:

var my_date:Date = new Date();
anyo = my_date.getFullYear();
month = my_date.getMonth();
day = my_date.getDate();
anyonac = 2006;
monthnac = 5;
daynac = 10;
ano.text = (anyonac-anyo);
mes.text = (monthnac-month);
dia.text = (day-daynac);
updateAfterEvent();

La idea es que me devuelva los años, meses y días que han transcurrido desde la fecha (Junio 10 de 2006).

Funcionaa medias, porque he puesto, por azar el ordenador con fecha 1 de Julio 2006 y me devuelve 1 mes, cosa que no es real, pues el mes se cumpliría el 10 de julio y no el 1 de julio.

Qué estoy haciendo mal o cómo puedo hacer que me devuelva lo que necesito de una manera más fácil?

Saludos y gracias por vueestra ayuda.

Andrew :p

Por andrewp

54 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Jun 2006 11:33 pm
aplicarle la logica adecuada.... es cuestion de lógica, analiza bien el problema y haz el algoritmo.

saludos y suerte

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 22 Jun 2006 02:35 am
mira qui esta un prototypo que te puede servir ;)

http://proto.layer51.com/d.aspx?f=751

Por colaborame

50 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Jun 2006 09:07 am
Gracias Colaborame... He visto el tutorial y esta muy bien; lo que pasa es que me deja en el mismo problema en el que estoy encallado... Los días y los meses.

Te explico... Tengo el siguiente código mejorado:

eventDate = new Date(2006, 5, 19, 00, 00, 00, 00);
eventMillisecs = eventDate.getTime();
currentDate = new Date();
currentMillisecs = currentDate.getTime();
msecs = currentMillisecs-eventMillisecs;
if (msecs<0) {
msecs = 0;
}
secs = Math.floor(msecs/1000);
mins = Math.floor(secs/60);
hours = Math.floor(mins/60);
days = Math.floor(hours/24);
month = Math.floor(days/365*12);
year = Math.floor(days/365);
msecs = String(Math.floor(msecs%1000/10));
secs = String(secs%60);
mins = String(mins%60);
hours = String(hours%24);
days = String(days);
month = String(month);
year = String(year);
if (msecs.length<2) {
msecs = "0"+msecs;
}
if (secs.length<2) {
secs = "0"+secs;
}
if (mins.length<2) {
mins = "0"+mins;
}
if (hours.length<2) {
hours = "0"+hours;
}
while (days.length<1) {
days = "0"+days;
}
dias.text = days+" días";
meses.text = month+" meses";
anyo.text = year+" años";
updateAfterEvent();

Cómo ves la fecha inicial es 19 de Junio de 2006 que se compara con la de "hoy". Va perfecto!, solo que si pruebo a verificar más tiempo me genera el número total de días incluyendo los meses. Por ejemplo: comparación con un año: 1 año 12 meses 365 días ?????!!!!... Lo que necesitaría es que sacara sólo 1 año 0 meses 0 días... Siempre me guarda la cantidad en cada variable sin importarle que despues de 30/31 días es un mes y 12 meses un año.

Entiendes?....

No sé si me puedas echar un amano con esto?...

Saludos y gracias!.

Por andrewp

54 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Jun 2006 01:22 pm
a chuatas, yo lo habia revisado y pense que servia para lo que querias.

Haber a la noche lo reviso si es que no te contestan antes. Pero la idea es decir la cantidad de años,mreses,dias que an apsado de esa fecha que tu dices. como un contador ....

Por colaborame

50 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Jun 2006 02:45 pm

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 22 Jun 2006 03:11 pm
Gracias a zah y "colaborame" por responderme tan precisamente.... De hecho el último código que os presenté funciona sin problemas y tiene los mismo efectos del vínculo que Zah proporciona. El problema es que me devuelve los días y la suma de los meses tal cual y yo necesito el tiempo exacto, es decir tantos años, tantos meses y tantos días... Tal y como está me dice, por ejemplo un año, doce meses, trescientos sesenta y cinco días, para decir tan sólo "un año"... Y qué decir entre fechas aleatorias... Total un despiste!!...

Agradecere mucho vuestra valiosa ayuda...

P.D. La idea es que a partir de una fecha vaya sumando dias, meses y años... Efecto contrario a la "cuenta atrás".

Gracias!...

Por andrewp

54 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Jun 2006 06:00 pm
sabes no entiendo porque acabo de probar el codigo que te mencionaba en el prototipo y funciona muy bien. le puse mi fecha de nacimiento y me da los dias y meses y todo.

Lo probaste??? que no te resulto ??? dame un ejemplo de cuando no funciona.

en tu caso en ves de poner la fecha de cumpleaños pones Junio 10 de 2006 (2006,5,10) y te dice cuanto tiempo ha pasado.

tambien tinee un prototipo para sumar tiempo a una fecha.

Por colaborame

50 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Jun 2006 06:49 pm
Colaborame, gracias por tu ayuda...

La cosa es que los días siguen sumando, los meses y los años...
Me explico... Si la fecha es, por ejemplo, junio 19 2006 (2006,5,19), cambiamos la fecha del PC a, por ejemplo, Julio 20 de 2006 y corremos la animación, me mostrará 0 años, 1 mes, 31 días ????!!!!!... Lo lógico sería 0 años, 1 mes, 1 día... No sé por qué acumula los días y no los carga en los meses sin cargarlos todo el tiempo el la expresión mínima de los días???....

Esto se puede arreglar de alguna manera?....

Por andrewp

54 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Jun 2006 03:28 pm

Código :

myDate = new Date();
myOldDate = new Date(2005, 5, 23);
var difDate:Date = myDate;
years = myDate.getFullYear()-myOldDate.getFullYear();
difDate.setYear(myDate.getFullYear()-years);
months = myDate.getMonth()-myOldDate.getMonth();
difDate.setMonth(myDate.getMonth()-months);
days = myDate.getDate()-myOldDate.getDate();
//difDate.setDate(myDate.getDate()-days);
trace(years);
trace(months);
trace(days);

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 28 Jun 2006 11:44 pm

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 29 Jun 2006 11:07 pm
Zah!...

Disculpa si antes no te había contestado, pero hasta hace poco leí tu POST.

Sencillamente decirte que el último código que me diste funciona a las mil maravillas y sin problemas. Muchísimas gracias por tu ayuda, finalmente he podido adaptar mi desarrollo conforme al código que me proporcionaste.

Gracias x 1000...

Saludos!...

Por andrewp

54 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Feb 2009 11:42 pm

andrewp escribió:

Zah!...

Disculpa si antes no te había contestado, pero hasta hace poco leí tu POST.

Sencillamente decirte que el último código que me diste funciona a las mil maravillas y sin problemas. Muchísimas gracias por tu ayuda, finalmente he podido adaptar mi desarrollo conforme al código que me proporcionaste.

Gracias x 1000...

Saludos!...

LA VERDAD ME GUSTARIA SABER SI HAY UN METODO PARA DEVOLVER LOS AÑOS

Por EDJUMOGA

0 de clabLevel



 

COLOMBIA

msie

 

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