Ir para conteúdo
Fórum Script Brasil
  • 0

Agenda


Guest --Adriano --

Pergunta

Guest --Adriano --

Bom dia, estou precisando de uma ajuda: tenho uma agenda com a seguinte descrição:

Dia

mês

Ano

Quantidade de Dias

Botão: Somar Dias

Coloquei um if para somar a quantidade de dias e adicionar 1 no mês, quando o usuário digita por ex. uma quantidade de 100 dias para somar, o meu calculo só vai diminuir a quantidade de dias estipulada para o mês, portanto como o usuário colocou 100 dias para somar, tendo como dia inicial 10, a soma vai dar (110 - a qtd de dias do mês), meu problema esta exatamente ai, pois preciso verificar se a quantidade final ainda esta acima dos dias do mês para retirar 30 novamente, e assim por dainte.

Abaixo esta meu código:

$diafinal=($_POST["Dia"])+($_POST["Quantidade"]);

if ($diafinal>$vetor_mes_dias[$_POST["mês"]]){

$diafinal=$diafinal-$vetor_mes_dias[$_POST["mês"]];

}

Obrigado.

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0
Guest --Adriano --

Obrigado pela ajuda, como posso estruturar este while no meu progrma?

$diafinal=($_POST["Dia"])+($_POST["Quantidade"]);

if($diafinal>$vetor_mes_dias[$_POST["mês"]]){

$diafinal=$diafinal-$vetor_mes_dias[$_POST["mês"]];

$mesfinal=$mesfinal+1;

}

while ($diafinal>$vetor_mes_dias[$_POST["mês"]])){

$diafinal=$diafinal-$vetor_mes_dias[$_POST["mês"]];

}

echo $diafinal;

Seria desta forma?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Adriano --

Ops.... deu um probleminha aqui no meu programa que não estou conseguindo resolver...

$vetor_mes_dias=Array("");//coloco este array para inserir os valores dentro dos elementos, pois sem ele, irei sobre escrever os elementos.

$vetor_mes_dias[1]=31;

$vetor_mes_dias[2]=";

//calculo do ano bissexto, se for divisivel por 400, Não divisivel por 100, e divisivel por 4 é bissexto.

if (($_POST["Ano]%400==0)&& ($_POST["Ano"]%100!=0)){

$vetor_mes_dias[2]=29;

}

elseif($_POST["Ano"]%4==0){

$vetor_mes_dias[2]=29;

}

else{

$vetor_mes_dias[2]=28;

}

$vetor_mes_dias[3]=31;

$vetor_mes_dias[4]=30;

$vetor_mes_dias[5]=31;

$vetor_mes_dias[6]=30;

$vetor_mes_dias[7]=31;

$vetor_mes_dias[8]=31;

$vetor_mes_dias[9]=30;

$vetor_mes_dias[10]=31;

$vetor_mes_dias[11]=30;

$vetor_mes_dias[12]=31;

$diafinal=$_POST["Dia"];

$mesfinal=$_POST["mês"];

$anofinal=$_POST["Ano"];

$diafinal=($_POST["Dia"])+($_POST["Quantidade"]);

while ($diafinal>$vetor_mes_dias[$_POST["mês"]]){

$diafinal=$diafinal-$vetor_mes_dias[$mesfinal];

$mesfinal=$mesfinal+1;

if($mesfinal==$vetor_mes_dias[2]){

if (($_POST["Ano"]%400==0)and ($_POST["Ano"]%100!=0)){

$vetor_mes_dias[2]=29;

}

elseif($_POST["Ano"]%4==0){

$vetor_mes_dias[2]=29;

}

else{

$vetor_mes_dias[2]=28;

}

}

if ($mesfinal>12){ //caso o mês ultrapasse 12 adiciona 1 no ano e retira 12 do mês

$mesfinal=($mesfinal)-12;

$anofinal=($anofinal)+1;

}

}

echo $diafinal;

echo"<br>";

echo $mesfinal;

echo "<br>";

echo ($anofinal);

echo "<br>";

O Problema é o seguinte, quando peço apra somar 365 dias no campo quantidade, por algum motivo ele não faz o calculo do ano bissexto, pois como result na outra janela ele me mostra as seguites informações:

Dia 30 Resultado

mês 12 =>>>>> 30

Ano 2007 12

Qunatidade = 365 2008

Como podem ver, o ano de 2008 é bissexto, então como resultado deveria aparecer dia 31/12/2008 pois Fevereiro tem um dia a mais.

alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Adriano --

Então Renato, esse código eu já adicionei para fazer um teste no programa tambem, mas pulou dois anos e diminuiu 4 dias no resultado, meu supervisor me falou que era para colocar esse calculo do ano bissexto que fiz dentro do meu while, mas não como coloca-lo, pois não da certo tambem....

tente o código do nosso amigo Edgar

<?php
$ano = 2008;

if ($ano%400 == 0) {
echo "É bissexto";
}
elseif (($ano%4 == 0) AND ($ano%100 == 0)){
echo "Não É bissexto";
}
elseif (($ano%4 == 0) AND ($ano%100 != 0)){
echo "É bissexto";
}else{}
?>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --ADRIANO --

RENATO, ENTÃO EFETUEI OUTRO TESTE AQUI NO MEU CALCULO BINARIO, O MESMO ESTA FUNCIONANDO PARA CALCULOS DE PEQUENOS DIAS, MAS QUANDO COLOCO 365 DIAS, O CALCULO PASSAR DEPERCEBIDO, E NÃO FAZ O DECRESCIMO DO mês DE FEVEREIRO.

Link para o comentário
Compartilhar em outros sites

  • 0

Adriano, tem um erro aqui.

No seu código está assim ...

if (($_POST["Ano"]%400==0)and ($_POST["Ano"]%100!=0)){
$vetor_mes_dias[2]=29;
}

elseif($_POST["Ano"]%4==0){
$vetor_mes_dias[2]=29;
}
else{
$vetor_mes_dias[2]=28;

}
E o correto é ...
if ($ano%400 == 0) {
$vetor_mes_dias[2]=28;
}
elseif (($ano%4 == 0) AND ($ano%100 == 0)){
$vetor_mes_dias[2]=29;
}
elseif (($ano%4 == 0) AND ($ano%100 != 0)){
$vetor_mes_dias[2]=28;
}

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Adriano --

Bom dia Renato, obrigado pela ajuda, tive que colocar uma outra verificação de no bissexto no final do meu programa, pois a contagem esta sendo feita apenas para os meses, então adicionei uma para o ano, funcionou perfeitamente.

Obrigado pela atenção.

Adriano

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...