Método de las Décadas ABC

Código fuente JavaScript
<script language="JavaScript"><!--
	Meses    = new Array 
		("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
	Dias= new Array 
		("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");
	MaxDia 	 = new Array
		(31,29,31,30,31,30,31,31,30,31,30,31);
	var abc  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var abc2 = "abcdefghijklmnopqrstuvwxyz";

function ValidarNumero(dato,minimo,max) 
{
   if (dato == "") 
   {
	alert("Ingrese valores Año,Mes,Día");
	return false;
   }
   for (var i=0; i<dato.length; i++) 
   {
      var caracter = dato.substring(i,i+1);
      if (caracter < "0" || caracter > "9")
      {
         alert("Fecha inexistente, [" + dato + "] valor debe ser numérico");
         return false;
      }
   }
   var valor = parseInt(dato,10)
   if (valor<minimo || valor>max) 
   {
      alert("Fecha inexistente, valor fuera de rango: ["+valor+"]   (Mínimo:"+minimo+" Máximo:"+max+")");
      return false;
   }
   return true
}
  

function QueDia(form,Fec8) 
{
	var AAAA = Fec8.substring(0,4);
	var Mes 	= Fec8.substring(4,6);
	var Dia 	= Fec8.substring(6,8);
/*	if (! ValidarNumero(AAAA,1900,2256))
	{
		form.DiaSemana.value = ""
		return;
	} */
	if (! ValidarNumero(Mes,1,12))
	{
		form.DiaSemana.value = ""
		return;
	}
	if (! ValidarNumero(Dia,1,MaxDia[Mes-1]))
	{
		form.DiaSemana.value = ""
		return;
	}

	Fecha 	   = new Date(AAAA,Mes - 1,Dia -1);
	var DiaSem = Fecha.getDay();
	if (Mes == 2 && Dia == 29)  // Verificar Bisiesto
	{
		FechaBis = new Date(AAAA,2,0);   // 1 de marzo
		var DiaBis = FechaBis.getDay();
		if (DiaBis == DiaSem)
		{
			window.alert("Fecha inexistente, año " + AAAA + " no es bisiesto");
			form.DiaSemana.value = ""
			return;
		}
	}
	form.DiaSemana.value = Dias[DiaSem] + " "+ Dia + " de " + Meses[Mes - 1]+" de "+AAAA;
}

/*
function Convertir(form)
{
	if (form.Fecha6.value > "")
	{	
		form.Fecha8.value = "";
		De6a8(form);
	}
	if (form.Fecha8.value > " ")
	{	
		form.Fecha6.value = "";
		De8a6(form);
	}
}
*/

function De6a8(form)
{

	var aa1 = form.Fecha6.value.substring(0,1);
	var aa2 = form.Fecha6.value.substring(1,2);
	var aa 	= form.Fecha6.value.substring(0,2);
	var mes = form.Fecha6.value.substring(2,4);
	var dia = form.Fecha6.value.substring(4,6);
	var p	= abc.indexOf(aa1);

	if (! ValidarNumero(aa2,0,9))
	{
		form.DiaSemana.value = ""
		return;
	}

	if (p == -1)
	{
		var p = abc2.indexOf(aa1);
	}
	if (p > -1)
	{
		form.Fecha6.value = abc.substring(p,p+1) + aa2 + mes + dia   
		var NuevoAA       = p * 10 + 2000 + aa2 * 1;
		form.FechaResultanteDe6a8.value = NuevoAA + " " + mes + " " + dia ;
		var Fec8          =  NuevoAA + mes + dia + "_"
	}
	else
	{
		if (! ValidarNumero(aa,0,99))
		{
			form.DiaSemana.value = ""
			return;
		}
		var Fec8 = "19" + aa + mes + dia;
		if (Fec8 < form.Inferior.value)
		{
			form.FechaResultanteDe6a8.value = "20" + aa + " " + mes + " " + dia;
			var Fec8				= "20" + aa + mes + dia	
			var AAAA 			= 1 * aa + 2000 
			var AAAA 			= "x" + AAAA
			var aa1 		 		= AAAA.substring(1,4);
			var a 				= aa1 - 200;
			var NuevoAA			= abc.substring(a,a+1) + aa2;	
			form.Fecha6.value = NuevoAA + mes + dia 
		}
		else
		{
			form.FechaResultanteDe6a8.value = "19" + aa + " " + mes + " " + dia ;
		}
	}
	QueDia(form,Fec8)
}
  

function De8a6(form)
{
	var aaaa = form.Fecha8.value.substring(0,4);
	var mes  = form.Fecha8.value.substring(4,6);
	var dia  = form.Fecha8.value.substring(6,8);

	if (! ValidarNumero(aaaa,1900,2259))
	{
		form.DiaSemana.value = ""
		return;
	}

	if (aaaa >= 2000)
	{
		var aaaa1     = aaaa.substring(0,3);
		var aaaa2     = aaaa.substring(3,4);
		var a         = aaaa1 - 200;
		var NuevoAA = abc.substring(a,a+1) + aaaa2;
	}
	else
	{
		var NuevoAA = aaaa.substring(2,4);
	}
	form.FechaResultanteDe8a6.value = NuevoAA + " " + mes + " " + dia ;
	QueDia(form,form.Fecha8.value)
}
// --></script>

Otro Código Fuente disponible:

| Cobol (DecadasABC) | Cobol (TestABC) | DEC Basic (DecadasABC) |

Volver a Página Principal