Foros del Web » Creando para Internet » Flash y Actionscript »

Añadir días a una fecha en AS 2.0

Estas en el tema de Añadir días a una fecha en AS 2.0 en el foro de Flash y Actionscript en Foros del Web. Hola buenas tardes, Tengo una duda, en AS puedo añadir días a una fecha, por ejemplo, en un programa que da crédito por la compra ...
  #1 (permalink)  
Antiguo 01/09/2011, 13:08
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Añadir días a una fecha en AS 2.0

Hola buenas tardes,

Tengo una duda, en AS puedo añadir días a una fecha, por ejemplo, en un programa que da crédito por la compra de algún producto, al cliente le damos ciertos días de crédito. Tengo lo siguiente para pintar la fecha:

Código:
var fechav:Date = new Date();
var fechastr:String = (fechav.getDate() + "/" + (fechav.getMonth()+1) + "/" + fechav.getFullYear());
y quisiera sumarle a esa fecha, los días del crédito, para que al final me de la fecha de vencimiento, p.e. si le otorgo el crédito el día 1/9/2011, que el vencimiento me salga de acuerdo a los días de crédito (45 días = 15/10/2011).

En Excel y SQL, cuando lo hago es de manera automática, pero en AS no sé como lograrlo.

Saludos
  #2 (permalink)  
Antiguo 01/09/2011, 17:48
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Añadir días a una fecha en AS 2.0

Se me ocurrió hacer esto:

Código:
vencimiento = function(plazo) {  
/* Declaro las variables y convierto las de tipo fecha en tipo numérico */
	var fechav:Date = new Date();
	var fechastr:String = (fechav.getDate() + "/" + (fechav.getMonth()+1) + "/" + fechav.getFullYear());
	var vencim:Number  = Number(fechav.getDate());
	var vencimd:Number = Number(fechav.getDate()) + Number(plazo); 
	var vencimm:Number = Number(fechav.getMonth()+1); 
	var vencima:Number = Number(fechav.getFullYear()); 
/* Verifico el número de días para el tipo de cálculo */
		trace("vencim " + vencim); 
	if (plazo > 0){
		if(vencim <= 30){  /* Enero/Marzo/Mayo/Julio/Agosto/Octubre/Diciembre*/
			do{ 
				vencimd = vencimd - 30;
				vencimm = vencimm + 1;
				if ((fechav.getMonth()+1) == 12) vencima = vencima + 1;
			}while(vencimd > 30);
		} else if (vencim = 31){ /* Abril/Julio/Septiembre/Noviembre */
			do{ 
				vencimd = vencimd - 31;
				vencimm = vencimm + 1;
				if ((fechav.getMonth()+1) == 12) vencima = vencima + 1;
			}while(vencimd > 31);
		}
	}else{ 
		fvencim = fechastr;
	}		
		fvencim = (String(vencimd) + "/" + String(vencimm) + "/" + String(vencima));
		trace("vencim " + vencimd + "/" + vencimm + "/" + vencima); 
		trace("vencim " + fvencim); 	
}
Al ejecutarlo con un plazo de 45 días y 0 días hace esto:

A 45 días...

Cita:
vencim 1
vencim 16/10/2011
vencim 16/10/2011
A 0 días...

Cita:
vencim 1
vencim 1/9/2011
vencim 1/9/2011
Lo cual es correcto, sin embargo se me ocurrió ponerle 1 día de crédito y paso lo siguiente:

Cita:
vencim 1
vencim -28/10/2011
vencim -28/10/2011
Opte por sustituir esta parte...


Código:
do{ 
	vencimd = vencimd - 30;
	vencimm = vencimm + 1;
	if ((fechav.getMonth()+1) == 12) vencima = vencima + 1;
}while(vencimd > 30);
Por eso...

Código:
do{ 
	vencimd = vencimd - vencim;
	vencimm = vencimm + 1;
	if ((fechav.getMonth()+1) == 12) vencima = vencima + 1;
}while(vencimd > 30);
y me arroja la siguiente información:

Cita:
vencim 1
vencim 30/25/2011
vencim 30/25/2011
A estas horas ya no pienso bien... alguien tiene alguna idea de donde estoy fallando?

Saludos!!

Etiquetas: fecha
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:22.