Estoy haciendo una nueva sección para el blog (ya está casi terminada), y necesitaba calcular el horóscopo Chino y el horóscopo del Zodiaco, mediante la fecha de nacimiento. Dado que no encontré en Google ningún script en PHP que lo hiciera, escribí yo uno.
En principio es bastante simple, para cada mes comprueba los dos horóscopos posibles, mirando si la fecha es antes o después de un determinado día. Seguramente hay muchas más formas de hacerlo, pero esta me pareció la más sencilla.
<?
function Zodiaco ($dia, $mes) {
switch ($mes) {
case 1: if ($dia >= 21) return 'Acuario'; else return 'Capricornio';
case 2: if ($dia >= 20) return 'Piscis'; else return 'Acuario';
case 3: if ($dia >= 21) return 'Aries'; else return 'Piscis';
case 4: if ($dia >= 21) return 'Tauro'; else return 'Aries';
case 5: if ($dia >= 22) return 'Géminis'; else return 'Tauro';
case 6: if ($dia >= 22) return 'Cancer'; else return 'Géminis';
case 7: if ($dia >= 24) return 'Leo'; else return 'Cancer';
case 8: if ($dia >= 24) return 'Virgo'; else return 'Leo';
case 9: if ($dia >= 24) return 'Libra'; else return 'Virgo';
case 10: if ($dia >= 24) return 'Escorpio'; else return 'Libra';
case 11: if ($dia >= 23) return 'Sagitario'; else return 'Escorpio';
case 12: if ($dia >= 22) return 'Capricornio'; else return 'Sagitario';
}
}
?>
El horóscopo Chino, cuyo ciclo se repite cada 12 meses, es un poco mas complicado:
<?
function HChino ($anio) {
//0004 - Año de la rata
$fraccion = ($anio - 4) / 12;
//Obteniendo los decimales
$fraccion = (round ($fraccion - floor ($fraccion), 2));
if ($fraccion == 0) return 'Rata';
if ($fraccion == round (1/12, 2)) return 'Buey';
if ($fraccion == round (2/12, 2)) return 'Tigre';
if ($fraccion == round (3/12, 2)) return 'Conejo';
if ($fraccion == round (4/12, 2)) return 'Dragon';
if ($fraccion == round (5/12, 2)) return 'Serpiente';
if ($fraccion == round (6/12, 2)) return 'Caballo';
if ($fraccion == round (7/12, 2)) return 'Cabra';
if ($fraccion == round (8/12, 2)) return 'Mono';
if ($fraccion == round (9/12, 2)) return 'Gallo';
if ($fraccion == round (10/12, 2)) return 'Perro';
if ($fraccion == round (11/12, 2)) return 'Cerdo';
}
?>
Creo que no tiene errores, todos los años que probé los calcula bien, ¿te sirvió?
#1 Osiris
El código corre muy bien, gracias por el aporte, y aunque está sencillo es bastante practico y resuelve bien.
Saludos
Agosto 14, 2009
Muchas gracias, hace unos días a atrás le preguntaba a un amigo como podía hacer para agregar el horóscopo a una web que tengo.
Julio 29, 2010
Aplicamos el tag nofollow, y los enlaces con keywords en los comentarios podrían ser eliminados, intentamos mantener limpio el blog de spam.
Puedes usar las etiquetas <i>, <b>, <em>, <strong>, <a>, href, procura cerrarlas adecuadamente o tu comentario podria no mostrarse del modo que deseas.
Si necesitas que se vean en el comentario caracteres especiales como los usados en lenguajes de programacion como php, xhtml, etc., debes escribirlo dentro de las etiquetas [code] [/code], de lo contrario no se mostrará.
Procura no escribir enlaces que no tengan ninguna relación con el tema.
Si realizas una crítica procura argumentarla, pero sobretodo evita los insultos.
Delivered by FeedBurner
Categorías
Archivos
Blogroll
Enlázanos
Si te gusta MirarPorMirar, puedes poner un enlace en tu web o blog.