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) |
![]()