Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/08/2007, 11:28
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Solapamiento de fechas...

O algo como esto:

Código PHP:
function e(q,br) {
document.body.appendChilddocument.createTextNode(q) );
if(!
brdocument.body.appendChilddocument.createElement("BR") );
}
function 
id(x) { return document.getElementById(x); }


// intervalos
var = new Array();
P[0] = {inicio: new Date('05/05/2007'), fin: new Date('05/30/2007') };        // se solapa con 2
P[1] = {inicio: new Date('06/01/2007'), fin: new Date('06/30/2007') };        // no se solapa con 3, contiene a 3 entero
P[2] = {inicio: new Date('04/01/2007'), fin: new Date('05/05/2007') };        // se solapa con 0
P[3] = {inicio: new Date('06/15/2007'), fin: new Date('06/20/2007') };        // se solapa con 1

// devuelve el mismo esquema de objeto de fechas pero acotada entre numeros (milisegundos)
function getIntervaloMSintervalo ) {
    
dev = new Object();
    for( var 
i in intervalo )
        
dev[i] = intervalo[i].getTime();
    return 
dev;
}

Number.prototype.estaEntre = function(a,b) {
    return ( (
Math.min(a,b)<=this) && (this<=Math.max(a,b)) );
}


for(var 
i=0PMS = new Array(); i<P.lengthi++)    // hallamos cada P en milisegundos (ms)
    
PMS[i] = getIntervaloMSP[i] );

for(var 
i=0i<PMS.lengthi++)  {            //cada PMS lo comprobamos con los demás
    
for(var j=0j<PMS.lengthj++) {
        if( 
i==) continue;        //estamos comparando uno consigo mismo
        
else {
            if( 
PMS[i].inicio.estaEntrePMS[j].inicioPMS[j].fin ) ^ PMS[i].fin.estaEntrePMS[j].inicioPMS[j].fin ) ) {
                
e(' Se han encontrado fechas solapadas: '+i+' con '+j+'. ');
            }
            else if( 
PMS[i].inicio.estaEntrePMS[j].inicioPMS[j].fin ) && PMS[i].fin.estaEntrePMS[j].inicioPMS[j].fin ) ) {
                
e(' La primera está contenida en la segunda: '+i+' en '+j+'. ');
            }
            else {
                
e(' No están solapadas : '+i+' con '+j+'. ');
            }
        }
    }
}

e("fin"); 
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.