Numero kua php

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Avatar de Usuario
miiso
Forista Medio
Forista Medio
Mensajes: 212
Registrado: Vie Jul 20, 2007 7:00 am
Ubicación: /mexico/DF/

Numero kua php

Mensaje por miiso » Jue Jun 03, 2010 3:12 am

Hola que tal

Tengo que hacer un programa que dada una fecha y dado el sexo direccione a una pagina.
el código para la fecha es el siguiente.

Código: Seleccionar todo

if(($year >= 1948) && ($year <= 1949))
{
   if(($year == 1949) && ($mes == 1) && ($dia <= 28))
   { Header("Location: 1.php");  }
if(($year == 1948) && ($mes == 2) && ($dia >= 10))
   { Header("Location: 1.php");    }
else if (($year == 1948) && ($mes > 2))
   {  Header("Location: 1.php"); }
}
Este código hace lo que tiene que hacer, el detalle es que lo tengo desde 1948 hasta el 2020. y cada año es una comparación igual a la anterior.

Necesito poner que si es Masculino entre a ciertos archivos y si es Femenino entre a otros.
mi idea es hacer un archivo que se llame procesa.php que solamente compare el sexo y dependiendo cual sea direccione al archivo adecuado, procesam.php y procesaf.php.

Nada mas que aun no se que tan conveniente sea el hacerlo de esta manera, que errores al futuro me pueden traer y si hay alguien que sepa alguna forma mas fácil de hacerlo se lo agradecería.

Si alguien tiene el código en javascript o php para el numero kua pues estaría mejor
siempre encuentras algo entre la mier... que no tiene desperdicio!!
Avatar de Usuario
shicefgo
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Lun May 10, 2010 1:00 am
Ubicación: Andalucía

Re: Numero kua php

Mensaje por shicefgo » Jue Jun 03, 2010 1:48 pm

He estado buscando por ahí qué es eso del número kua y difícil no ha sido encontrarlo, no.
Como a mí me gustan estas cosas de trastear con fechas (hasta tengo programado un calendario en GTK que calcula las fiestas movibles de semana santa y demás), no he podido resistirme. Además, así practico un poco con los días julianos en php, que puede ser que próximamente me venga bien.
Y de paso también lo pongo en pastebin y así voy aprendiendo a usarlo.

Chequealo bien, no te garantizo que funcione 100% porque le he hecho muy pocas comprobaciones.

Aquí está el código.
Lo he dejado para un mes. No sé si esta es la mejor manera de usar el pastebin ese, pero por algo hay que empezar. :)

El siguiente comentario en el código:
"Da igual que el año tenga dos dígitos o cuatro (en mi opinión mejor si son cuatro, para evitar posibles confusiones)" Ha resultado ser un tanto desafortunado, ya que como hay que comparar el año con el 2000, resulta obvio que tiene que ser de cuatro cifras.
En fin, primera depuración al canto y primer tropiezo en pastebin, ya que todavía no he averiguado si se puede o no editar. (Ya le llegará el turno, supongo).

Un saludo.
Avatar de Usuario
miiso
Forista Medio
Forista Medio
Mensajes: 212
Registrado: Vie Jul 20, 2007 7:00 am
Ubicación: /mexico/DF/

Re: Numero kua php

Mensaje por miiso » Jue Jun 03, 2010 10:00 pm

orale muchas gracias, impresionante el código no lo podría haber hecho yo.

Nada mas que tengo unas dudas!

Bueno primeramente las variables que debo de pasar??
$anyo , $sexo??
Es de sobre entenderse que no le entiendo muy bien al código, aunque viene con comentarios, pero en mi archivo donde ingreso datos no se que nombres de variables le voy a poner, yo tengo un codigo que dada una fecha se direcciona a un archivo.
y el codigo para pedir los datos es asi:

Código: Seleccionar todo

body>
<form id="form1" name="form1" method="post" action="/animales/procesar.php">
  <label>Dia
  <select name="dia" id="select">
    <option>-----</option>
    <option>1</option>
     . . .  hasta
   <option>31</option>
    </select>
  Mes
  <select name="mes" id="select2">
    <option>-----</option>
<option value="1">Enero</option>								
  . . . hasta
<option value="12">Dic</option>
  </select>
  Año
  <select name="year" id="year">
    <option>-----</option>
  <option>1948</option>
    . . . hasta 
 <option>2020</option>
  
    </select>
</label>
  <p>
    <label></label>
    <input type="submit" name="button" id="button" value="Enviar" />
    <input type="reset" name="button2" id="button2" value="Restablecer">
  </p>
</form>
y el codigo procesar.php tiene esto

Código: Seleccionar todo

<?php
$dia=$_REQUEST["dia"];
$mes=$_REQUEST["mes"];
$year=$_REQUEST["year"];

// RATA 1948 - 1949
if(($year >= 1948) && ($year <= 1949))
{ if(($year == 1949) && ($mes == 1) && ($dia <= 28))
    {  Header("Location: rata.php"); }
if(($year == 1948) && ($mes == 2) && ($dia >= 10)){   
      Header("Location: rata.php");    }
   else if (($year == 1948) && ($mes > 2))
   { Header("Location: rata.php"); }
	}

. . .  hasta

// 2019- 2020
if(($year >= 2019) && ($year <= 2020))
{ if(($year == 2020) && ($mes == 1) && ($dia <= 24))
{ Header("Location: cerdo.php"); }
if(($year == 2019) && ($mes == 2) && ($dia >= 5)){
 Header("Location: cerdo.php");    }
else if (($year == 2019) && ($mes > 2))
{ Header("Location: cerdo.php");  }
	}
?>
y este código lo hago para cada año, obviamente tu conocimiento de programación hace que no pongas las comparaciones como yo de una por una, fue todo un show hacerlo. Pero bueno ahí esta y si lo hace correcto.

Y las variables que pido son dia, mes y year. y sas lo hace pero en tu código no se que variables pedir, y si son en check o en lista como el otro no se.

Espero que me puedas ayudar a completarlo.....

Gracias
siempre encuentras algo entre la mier... que no tiene desperdicio!!
Avatar de Usuario
shicefgo
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Lun May 10, 2010 1:00 am
Ubicación: Andalucía

Re: Numero kua php

Mensaje por shicefgo » Vie Jun 04, 2010 12:40 pm

miiso escribió:Bueno primeramente las variables que debo de pasar??
$anyo , $sexo??
Es de sobre entenderse que no le entiendo muy bien al código, aunque viene con comentarios, pero en mi archivo donde ingreso datos no se que nombres de variables le voy a poner, yo tengo un codigo que dada una fecha se direcciona a un archivo.
Dices que no entiendes muy bien el código, así que si piensas utilizarlo será mejor que te lo depure un poco. Le he añadido algunos controles adicionales y lo he modulado en tres funciones. No obstante, asegúrate de que hace lo que necesitas, que la responsabilidad del uso es toda tuya. :)

Nuevo código en pastebin.ca

Bueno, ahora a ver si logro "explicotearlo" (aunque debería estar bastante claro...)
La función reducir_a_un_digito($numero) está muy clara. Recibe un número y reduce sus dos últimas cifras a un dígito por el método ese del número KUA. Le he añadido la comprobación de que el número tenga por lo menos dos dígitos y la he cambiado a un bucle while (más elegante).

La función anyo_para_zodiaco_chino($fechaNacimiento, $fechaComienzoAnyoChino) antes formaba parte de obtener_kua(), pero me ha parecido que implementar ese proceso por separado contribuye a la modularidad del código, que siempre viene bien. Los dos parámetros de esta función son arrays y cada uno debe contener un año, un mes y un día en ese orden. Por ejemplo:
Para obtener el año zodiacal chino de alguien nacido el 15-01-1987 (yo soy maaaaas viejo :D ) habría que crear un array para el primer parámetro con la fecha de nacimento:
$param1[0]='1987';
$param1[1]='1';
$param1[2]='15';

Y otro para el segundo con la fecha del año nuevo chino en el año 1987:
$param2[0]='1987';
$param2[1]='1';
$param2[2]='29';

Y llamar a la función así:
$variable = anyo_para_zodiaco_chino($param1, $param2);

La tercera función queda casi igual que antes (con la comprobación añadida y con la sustitución del código que ha pasado a formar parte de la función anterior por una llamada a la misma).
En el primer parámetro hay que pasarle una 'f' si el sexo es mujer y cualquier otra cosa si se trata de un hombre. Para los dos siguientes parámetros vale la explicación anterior. Un par de ejemplos de llamadas a esta función serían:

$sexo = 'f';
$numeroKua = obtener_kua($sexo, $param1, $param2); // Para una mujer.
$numeroKua = obtener_kua('h', $param1, $param2); // Para un hombre.

Por lo que veo, en tu archivo procesar.php se determina el animal del zodiaco en base a dos años, dado que el año chino suele comenzar en enero o febrero. Si utilizas mi función anyo_para_zodiado_chino(), sólo necesitarías tener en cuenta el año de comienzo para determinar el animal. Es decir, que para el año 1987 (tigre) no necesitas tener en cuenta los 28 primeros días de enero de 1988, porque eso ya lo calcula la función, sino únicamente implementar algo como: "1987 = tigre", "1988 = conejo", y así lo puedes hacer con todos los demás (una vez que estés realmente convencido de que el código te sirve).

Saludos.
Avatar de Usuario
miiso
Forista Medio
Forista Medio
Mensajes: 212
Registrado: Vie Jul 20, 2007 7:00 am
Ubicación: /mexico/DF/

Re: Numero kua php

Mensaje por miiso » Vie Jun 04, 2010 10:28 pm

Oye gracias, mira ya lei el nuevo código, mas o menos ya le entendí a las funciones y lo que hace, solamente que sigo con lo mismo necesito calarlo.
este código que me diste lo tengo como kua.php pero necesito poner un formulario que mande llamara a este kua.php para ejecutarlo no?
poner sus fechas de nacimiento y sexo, pero lo que no entiendo es que poner en el formulario (check list, checkbox) y que nombre de variables recoja.
De ahi en mas el código funcionando ya le puedo agarrar!!

Espero me apoyes con esto ya ultimo! :)

Aaaaaah! otra cosa, si el codigo de arriba es para determinar el año animal, y si me intereso mucho este rollo que me dices!!! Gracias!!
siempre encuentras algo entre la mier... que no tiene desperdicio!!
Avatar de Usuario
shicefgo
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Lun May 10, 2010 1:00 am
Ubicación: Andalucía

Re: Numero kua php

Mensaje por shicefgo » Sab Jun 05, 2010 11:10 am

miiso escribió:este código que me diste lo tengo como kua.php pero necesito poner un formulario que mande llamara a este kua.php para ejecutarlo no?
Pero anda que...
Pones al principio del archivo donde quieras utilizarlo un

include('kua.php'); //(Si lo tienes en otracarpeta/kua.php sería: include('otracarpeta/kua.php') ¿eh?

y ya lo tienes disponible.

El formulario ya es cosa tuya. Tienes que recoger la fecha de nacimiento, el sexo, y obtener por tus medios la fecha de comienzo del año chino para el año de la fecha de nacimiento.

Saludos.
Avatar de Usuario
miiso
Forista Medio
Forista Medio
Mensajes: 212
Registrado: Vie Jul 20, 2007 7:00 am
Ubicación: /mexico/DF/

Re: Numero kua php

Mensaje por miiso » Lun Jun 07, 2010 6:56 pm

gracias por contestar, pues nada que apenas lo voy a hacer, pero no se de donde voy a sacar el comienzo del año chino, no tengo idea. Es dada la fecha tiene que buscar entre una serie de comparativas para ver cual concuerda con el año chino no?
pero el año chino cuales son? eso no se! pero respecto al codigo pues muchas gracias!!
siempre encuentras algo entre la mier... que no tiene desperdicio!!
Avatar de Usuario
shicefgo
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Lun May 10, 2010 1:00 am
Ubicación: Andalucía

Re: Numero kua php

Mensaje por shicefgo » Mié Jun 09, 2010 12:48 pm

miiso escribió:Es dada la fecha tiene que buscar entre una serie de comparativas para ver cual concuerda con el año chino no?
Puedes crearte una tabla que contenga el año como índice, más el mes y el día de comienzo del año chino (es lo que yo haría).

Luego haces una función que reciba el año, localize en la tabla el registro correspondiente, y devuelva un array conteniendo el año, el mes y el día, que sería el dato llamado "fechaComienzoAnyoChino" en el script.

Otra solución (en mi opinión más engorrosa) sería un switch más o menos así:

Código: Seleccionar todo

function obtener_comienzo_anyoChino($anyoChino) {
   $fechaComienzoAnyoChino[0] = $anyoChino;  // Año

   switch(anyoChino) {
      case 1987 :
         $fechaComienzoAnyoChino[1] = '1';  // Mes
         $fechaComienzoAnyoChino[2] = '29';  // Día
         break;

      case 1988 :
        .../....
   
      // Y así para cada año que quieras contemplar;
   }

   return $fechaComienzoAnyoChino;
}
Un saludo.
Avatar de Usuario
miiso
Forista Medio
Forista Medio
Mensajes: 212
Registrado: Vie Jul 20, 2007 7:00 am
Ubicación: /mexico/DF/

Re: Numero kua php

Mensaje por miiso » Jue Jun 10, 2010 8:10 pm

perfecto y ya teniendo el inicio del año chino lo manda tmb a kua.php lo procesa con el año mes y dia y brota el numero kua.
pero mira te das cuenta que facil lo hacen ver en esta pagina y hay un montón que lo hacen ver super facil!!
http://www.fengshuiprofesional.com/el02frmkua.html
siempre encuentras algo entre la mier... que no tiene desperdicio!!
Avatar de Usuario
shicefgo
Forista Menor
Forista Menor
Mensajes: 53
Registrado: Lun May 10, 2010 1:00 am
Ubicación: Andalucía

Re: Numero kua php

Mensaje por shicefgo » Vie Jun 11, 2010 9:19 am

En esa página se ve fácil el formulario, pero de alguna manera tendrán que hacer el cálculo.
Una cosa es el diseño exterior de la página y otra las operaciones que se lleven a cabo "por dentro".
Mientras más simple y fácil de usar sea el formulario que debe interactuar con el usuario, mejor.

Que algo se vea sencillo no quiere decir obligatoriamente que sea igual de sencillo en todos los aspectos.

Da por seguro que en alguna parte tienen que hacer los cálculos. Si un problema requiere de algún tipo de algoritmo para su solución, ese algoritmo tiene que estar implementado, ya sea de una forma o de otra.
Puedes darle un vistazo detenido al código fuente y seguro que encuentras llamadas a archivos php y/o a funciones javascript cuyo código no está en la página.

Saludos.
mugroso
Forista Nuevo
Forista Nuevo
Mensajes: 1
Registrado: Mié Mar 09, 2011 8:01 pm

Re: Numero kua php

Mensaje por mugroso » Mié Mar 09, 2011 8:13 pm

Hola amigo quiero ver el código en los links que pusiste pero no encuentra la pagina, me gustaria que si me lo puedes proporcionar
por que voy hacer una aplicacion sobre el numero kua voy a apoyarme con los codigo que estan aqui publicados
gracias
Última edición por mcun el Mié Mar 09, 2011 8:13 pm, editado 1 vez en total.
Razón: Mensaje editado por contener escritura incorrecta, por favor revisa el reglamento
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje