Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nknk

[RESOLVIDO] Função para Signos

Recommended Posts

Oi, Não encontrei no fórum, é uma função interessante! Alguém sabe como fazer? Já viu em algum lugar ? Preciso do código para implementar em um cadastro.Por exemplo.: O usuário digita a data de nasc 10/01/1910 ou só dia e mêsE ele devolve o signo da pessoa - Áries(acho que deve ser esse)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, basta usar IF que você consegue fazer tudo. Eu não sei como funcionam os signos direito (nao sei as datas exatas), mas vou dar um exemplo.

 

if ($mes == "setembro" and $dia > 15 OR $mes == "outubro" and $dia < 20) {		$signo = "XXX";   }

Talvez tenha alguns erros, mas o principio é esse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos!

Bem, eu me interessei pelo tópico e resolvi postar aqui um código que poderá atender às suas necessidades:

 

Ah... é como o fvmp mesmo comentou... são necessários vários ifs para verificar as datas limites de cada signo. Bom, não sei se existe outra lógica mais fácil mas, como estou meio sem tempo, vou colocar o que pude desenvolver:

 

<?php//Data recebida através de um formulário, BD, etc...$data = "31/07/2007";//Capturando mês e dia:$mes=substr($data,3,2);$dia=substr($data,0,2);echo $dia."/".$mes."<br>";//Áries: 21/03 a 20/04//Touro: 21/04 a 20/05//Gêmeos: 21/05 a 20/06//Câncer: 21/06 a 21/07//Leão: 22/07 a 22/08//Virgem: 23/08 a 22/09//Libra: 23/09 a 22/10//Escorpião: 23/10 a 21/11//Sagitário: 22/11 a 21/12//Capricórnio: 22/12 a 20/01//Aquário: 21/01 a 19/02//Peixes: 20/02 a 20/03echo "Seu signo: ";if($mes=="03"){//Áries: 21/03 a 20/04	if($dia>="21"){echo "Áries";}	else{echo "Peixes";}}if($mes=="04"){//Touro: 21/04 a 20/05	if($dia>="21"){echo "Touro";}	else{echo "Áries";}}if($mes=="05"){//Gêmeos: 21/05 a 20/06	if($dia>="21"){echo "Gêmeos";}	else{echo "Touro";}}if($mes=="06"){//Câncer: 21/06 a 21/07	if($dia>="21"){echo "Câncer";}	else{echo "Gêmeos";}}if($mes=="07"){//Leão: 22/07 a 22/08	if($dia>="22"){ echo "Leão";}	else{echo "Câncer";}}if($mes=="08"){//Virgem: 23/08 a 22/09	if($dia>=23){ echo "Virgem";}	else{echo "Leão";}}if($mes=="09"){//Libra: 23/09 a 22/10	if($dia>="23"){ echo "Libra";}	else{echo "Virgem";}}if($mes=="10"){//Escorpião: 23/10 a 21/11	if($dia>="23"){ echo "Escorpião";}	else{echo "Libra";}}if($mes=="11"){//Sagitário: 22/11 a 21/12	if($dia>="22"){echo "Sagitário";}	else{echo "Escorpião";}}if($mes=="12"){//Capricórnio: 22/12 a 20/01	if($dia>="22"){echo "Capricórnio";}	else{echo "Sagitário";}}if($mes=="01"){//Aquário: 21/01 a 19/02	if($dia>="21"){echo "Aquário";}	else{echo "Capricórnio";}}if($mes=="02"){//Peixes: 20/02 a 20/03	if($dia>="20"){echo "Peixes";}	else{echo "Aquário";}}?>

Como podem ver, coloquei o código meio "imbricado", não seguindo um modelo ideal de programação para reduzir a área de postagem. Mas o código está aí... basta colá-lo em seu editor PHP e fazer as alterações necessárias conforme o seu propósito...

 

Espero ter ajudado!

Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito klonder, esse código vai funcionar perfeitamente.

 

mas acho que no caso seria melhor usar elseif a partir do segundo if.

 

Por exemplo:

 

echo "Seu signo: ";if($mes=="03"){//Áries: 21/03 a 20/04	if($dia>="21"){echo "Áries";}	else{echo "Peixes";}}elseif($mes=="04"){//Touro: 21/04 a 20/05	if($dia>="21"){echo "Touro";}	else{echo "Áries";}}elseif($mes=="05"){//Gêmeos: 21/05 a 20/06	if($dia>="21"){echo "Gêmeos";}	else{echo "Touro";}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas acho que no caso seria melhor usar elseif a partir do segundo if.

Nossa! É verdade fvmp! Você, sem querer, acabou me inspirando a fazer até uma validação de data inválida (menos para fevereiro, porque estou meio sem tempo)... mas isso não será difícil não...

 

Aí está o novo código, by fvmp:

 

<?php//Data recebida através de um formulário, BD, etc...$data = "33/14/2007";//Capturando mês e dia:$mes=substr($data,3,2);$dia=substr($data,0,2);echo $dia."/".$mes."<br>";//Áries: 21/03 a 20/04//Touro: 21/04 a 20/05//Gêmeos: 21/05 a 20/06//Câncer: 21/06 a 21/07//Leão: 22/07 a 22/08//Virgem: 23/08 a 22/09//Libra: 23/09 a 22/10//Escorpião: 23/10 a 21/11//Sagitário: 22/11 a 21/12//Capricórnio: 22/12 a 20/01//Aquário: 21/01 a 19/02//Peixes: 20/02 a 20/03echo "Seu signo: ";//Verificando se a data informada é válida:if ($mes<"01" OR $mes>"12"){echo "O mês informado é inválido!";}elseif ($dia<"01" OR $dia>"31") {echo "O dia informado é inválido!";}//Se estiver tudo certo, o bloco a seguir é executado:else{  if($mes=="03"){//Áries: 21/03 a 20/04	  if($dia>="21"){echo "Áries";}	  else{echo "Peixes";}  }  elseif($mes=="04"){//Touro: 21/04 a 20/05	  if($dia>="21"){echo "Touro";}	else{echo "Áries";}  }  elseif($mes=="05"){//Gêmeos: 21/05 a 20/06	  if($dia>="21"){echo "Gêmeos";}	  else{echo "Touro";}  }  elseif($mes=="06"){//Câncer: 21/06 a 21/07	  if($dia>="21"){echo "Câncer";}	  else{echo "Gêmeos";}  }  elseif($mes=="07"){//Leão: 22/07 a 22/08	  if($dia>="22"){ echo "Leão";}	else{echo "Câncer";}  }  elseif($mes=="08"){//Virgem: 23/08 a 22/09	  if($dia>=23){ echo "Virgem";}	else{echo "Leão";}  }  elseif($mes=="09"){//Libra: 23/09 a 22/10	  if($dia>="23"){ echo "Libra";}	else{echo "Virgem";}  }  elseif($mes=="10"){//Escorpião: 23/10 a 21/11	  if($dia>="23"){ echo "Escorpião";}	else{echo "Libra";}  }  elseif($mes=="11"){//Sagitário: 22/11 a 21/12	  if($dia>="22"){echo "Sagitário";}	else{echo "Escorpião";}  }  elseif($mes=="12"){//Capricórnio: 22/12 a 20/01	  if($dia>="22"){echo "Capricórnio";}	else{echo "Sagitário";}  }  elseif($mes=="01"){//Aquário: 21/01 a 19/02	  if($dia>="21"){echo "Aquário";}	else{echo "Capricórnio";}  }  else{//Peixes: 20/02 a 20/03		if($dia>="20"){echo "Peixes";}		else{echo "Aquário";}  } }    ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu usei o código do klonder e fvmpe funcionou.Não testei a do tmferreira pq a solução é para um nível mais avançado mas com maior otimização, não entendi completamente. Mas de qq forma obrigado pelas respostas

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.