Codeme

Bem Vindo ao CODME
Cadastre-se agora para obter acesso a todos os nossos recursos. Uma vez cadastrado e logado, você será capaz de criar tópicos, postar respostas a tópicos já existentes, a reputação de seus companheiros, começar seu próprio mensageiro privado, atualizações pós status, gerenciar seu perfil e muito mais. Esta mensagem será removido depois de ter cadastrado.
Entrar na Conta Criar uma conta


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

#1 Verificando se ano é Bissexto em Sab Out 26, 2013 4:34 pm

Admin

avatar

Admin

este Script faz basicamente o seguinte: vc seleciona a data, DIA, MES e ANO, e se vc selecionar um dia maior que 29 em Fevereiro ele primeiro verifica se o ano é Bissexto, se naum for, retorna data invalida, se for ano Bissexto, e for selecionado um dia maior que 29 em Fevereiro, retorna data invalida novamente, mais se for Bissexto e for selecionado o dia 29, retorna data Valida.

Código:
<html>
<head>
<title>Codme</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
//Array com todos os Dias
$arrDia = array("1"=>"1", "2"=>"2", "3"=>"3", "4"=>"4", "5"=>"5", "6"=>"6", "7"=>"7", "8"=>"8", "9"=>"9", "10"=>"10",
           "11"=>"11", "12"=>"12", "13"=>"13", "14"=>"14", "15"=>"15", "16"=>"16", "17"=>"17", "18"=>"18", "19"=>"19", "20"=>"20",
           "21"=>"21", "22"=>"22", "23"=>"23", "24"=>"24", "25"=>"25", "26"=>"26", "27"=>"27", "28"=>"28", "29"=>"29", "30"=>"30",
           "31"=>"31");
//Array com todos os Meses
$arrMes = array("1"=>"Janeiro", "2"=>"Fevereiro", "3"=>"Março", "4"=>"Abril", "5"=>"Maio", "6"=>"Junho", "7"=>"Julho", "8"=>"Agosto", "9"=>"Setembro", "10"=>"Outubro", "11"=>"Novembro", "12"=>"Dezembro");
//Array com os anos no intervalo de 1940 até o atual
$arrAno = array("1"=>"1940",  "2"=>"1941",  "3"=>"1942",  "4"=>"1943",  "5"=>"1944",  "6"=>"1945",  "7"=>"1946",  "8"=>"1947",  "9"=>"1948", "10"=>"1949",
           "11"=>"1950", "12"=>"1951", "13"=>"1952", "14"=>"1953", "15"=>"1954", "16"=>"1955", "17"=>"1956", "18"=>"1957", "19"=>"1958", "20"=>"1959",
           "21"=>"1960", "22"=>"1961", "23"=>"1962", "24"=>"1963", "25"=>"1964", "26"=>"1965", "27"=>"1966", "28"=>"1967", "29"=>"1968", "30"=>"1969",
           "31"=>"1970", "32"=>"1971", "33"=>"1972", "34"=>"1973", "35"=>"1974", "36"=>"1975", "37"=>"1976", "38"=>"1977", "39"=>"1978", "40"=>"1979",
           "41"=>"1980", "42"=>"1981", "43"=>"1982", "44"=>"1983", "45"=>"1984", "46"=>"1985", "47"=>"1986", "48"=>"1987", "49"=>"1988", "50"=>"1989",
           "51"=>"1990", "52"=>"1991", "53"=>"1992", "54"=>"1993", "55"=>"1994", "56"=>"1995", "57"=>"1996", "58"=>"1997", "59"=>"1998", "60"=>"1999",
           "61"=>"2000", "62"=>"2001", "63"=>"2002", "64"=>"2003", "65"=>"2004", "66"=>"2005", "67"=>"2006", "68"=>"2007", "69"=>"2008", "70"=>"2009",
           "71"=>"2010", "72"=>"2011");
?>
<form name="form_ano" method="post" action="?acao=calcular">
<select name="selectDia">
<option value="" selected="Selected">Dia</option>
<?php
//variavel que indica o indice a ser carregado primeiro do Array $arrDia
$indiceArrDia = 1;
//usando o LOOP while para carregar dinamicamente os dias no select com os dados do Array $arrDia
while($indiceArrDia <= 31){
   //aqui, é o bloco de código executado dentr4o do LOOP WHILE que popula as opções do select com a Array dia com base no valor da variavel $indiceArrDia atual até ela atingir o valor 31
   echo "<option value=".$arrDia[$indiceArrDia].">".$arrDia[$indiceArrDia]."</option>";
   //aqui se soma 1 ao valor atual da variavel a cada volta do LOOP
   $indiceArrDia++;
}
?>
</select>
<select name="selectMes">
<option value="" selected="Selected">***Mês***</option>
<?php
//variavel que indica o indice a ser carregado do Array $arrMes
$indiceArrMes = 1;
while($indiceArrMes <= 12){
   echo "<option value=".$arrMes[$indiceArrMes].">".$arrMes[$indiceArrMes]."</option>";
   $indiceArrMes++;
}
?>
</select>
<select name="selectAno">
<option value="" selected="Selected">*Ano*</option>
<?php
//variavel que indica o indice a ser carregado primeiro do Array $arrAno
$indiceArrAno = 72;//como os anos estão em ordem crescente, ou seja, na msma ordem dos indices do Array, para começar com o ano de 2011, temos que carregar começando do fim do Array, ou seja, do ultimo indice
while($indiceArrAno >= 1){
   //aqui é um pouco diferente, como estamos carregando o array começando o ultimo indice, temos que indicar o primeiro indice sendo o fim, que nesse caso, é o 1, que corresponde ao ano de 1940
   echo "<option value=".$arrAno[$indiceArrAno].">".$arrAno[$indiceArrAno]."</option>";
   //e finalmente aqui, ao invez de somar 1 ao numero na variavel, subtrai, até atingir o numero indicado no LOOP WHILE, que nesse caso eh 1
   $indiceArrAno--;
}
?>
</select>
<input type="submit" value="Calcular &gt;&gt;" name="calc">
</form>
<?php
$dia = $_POST['selectDia'];
$mes = $_POST['selectMes'];
$ano = $_POST['selectAno'];
if($_GET['acao'] == "calcular") {
   if($dia == "" || $mes == "" || $ano == ""){
      echo "Falta Selecionar alguma data";
   }else if($mes == "Fevereiro" && $dia > "29"){
      echo "Fevereiro tem no máximo 29 dias, e e somente em ano Bissexto, no restante, 28 dias";
   }else if($mes == "Fevereiro" && $dia == "29"){
      if ((($ano % 4) == 0 && ($ano % 100)!=0) || ($ano % 400)==0){
         echo "Este ano é Bissexto, então Fevereiro tem 29 dias, e a data selecionada foi: ".$dia." de ".$mes." de ".$ano;
      }else{
         echo "Este Ano não é Bissexto, então, Fevereiro não tem 29 Dias";
      }
   }else{
      echo "A data selecionada foi: ".$dia." de ".$mes." de ".$ano;
   }
}
?>
</body>
</html>

Ver perfil do usuário http://codme.umforum.net

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]


Permissão deste fórum:
Você não pode responder aos tópicos neste fórum