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

Script sobre datas religiosas


sbarros

Pergunta

Eu adaptei um script de feriados nacionais com eventos fixos e móveis. Estou com dificuldade em mostrar os eventos móveis. Vou mostrar o código:

<?php
// Gregorian Calendar =>1583
if (!$_GET["y"] || ($_GET["y"] < 1583) || ($_GET["y"] > 4099)) {
    $_GET["y"] = date("Y",time());    // use the current year if nothing is specified
}

function format_date($day, $month, $year) {
    // pad single digit months/days with a leading zero for consistency (aesthetics)
    // and format the date as desired: DD-MM-YYYY by default

    if (strlen($month) == 1) {
        $month = "0". $month;
    }
    if (strlen($day) == 1) {
        $day = "0". $day;
    }
 //  $date = $year ."-". $month ."-". $day;
    $date = $day ."-". $month ."-". $year;
    return $date;
}


function calculate_easter($y) {

    $a = $y%19;
    $b = intval($y/100);
    $c = $y%100;
    $d = intval($b/4);
    $e = $b%4;
    $f = intval(($b+8)/25);
    $g = intval(($b-$f+1)/3);
    $h = (19*$a+$b-$d-$g+15)%30;
    $i = intval($c/4);
    $k = $c%4;
    $l = (32+2*$e+2*$i-$h-$k)%7;
    $m = intval(($a+11*$h+22*$l)/451);
    $p = ($h+$l-7*$m+114)%31;
    $EasterMonth = intval(($h+$l-7*$m+114)/31);    // [3 = March, 4 = April]
    $EasterDay = $p+1;    // (day in Easter Month)
    return format_date($EasterDay, $EasterMonth, $y);

}


/////////////////////////////////////////////////////////////////////////////
// end of calculation functions; place the dates you wish to calculate below
/////////////////////////////////////////////////////////////////////////////

?>

<form action="<?php echo($PHP_SELF); ?>" method="get">
<b>Entre com o Ano:</b> <input type="text" name="y" value="<?php echo ($_GET["y"]); ?>" size="4" maxlength="4"> <input type="submit" value="Ir">
</form>






<?php

$datas = array();

//Páscoa
$datas['pascoa'] = easter_date($_GET["y"]);

//Carnaval
$datas['Carnaval'] = $datas['pascoa'] - 47 * 86400;

//Corpus Christi
$datas['Corpus Christi'] = $datas['pascoa'] + 60 * 86400;

//Paixão de Cristo
$datas['Sexta-feira Santa'] = $datas['pascoa'] - 2 * 86400;

function converter($time)
{
        return date("d/m/Y", $time);
}

print_r(array_map("converter", $datas));

// format to use:
// format_date("day", "month", "year");
echo "<p><b>". $_GET["y"] ." Feriados Nacionais</b></p>";
echo "<ul>";
echo "<li><b>Eventos fixos:</b>";
echo "<li>Confraternização Universal = ". format_date(1, 1,$_GET["y"]);
echo "<li>Tiradentes = ". format_date(21, 4,$_GET["y"]);
echo "<li>Dia do Trabalho = ". format_date( 1, 5,$_GET["y"]);
echo "<li>Proclamação da República = ". format_date(7,9,$_GET["y"]);
echo "<li>Nossa Senhora Aparecida = ". format_date(12,10,$_GET["y"]);
echo "<li>Finados = ". format_date(2,11,$_GET["y"]);
echo "<li>Natal = ". format_date(25,12,$_GET["y"]);
echo "<li><b>Eventos móveis:</b>";
echo "<li>Carnaval =";
echo "<li>Carnaval =";
echo "<li>Sexta-feira Santa=";
echo "<li>Páscoa = ". calculate_easter($_GET["y"]);
echo "<li>Corpus Christi=";
echo "</ul>";
?>

Dos eventos móveis, somente a Pascoa aparece em uma sequencia logica mas o Carnaval, Paixão e Corpus Christi não estão em uma ordem.Espero contar com a ajuda de alguém e fico agradecido.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Não ajuda porque o link mostra parte o código que já está no script. Pergunto se posso fazer assim:

//Páscoa
$datas = easter_date(2008);

//Carnaval
$datas1 = $datas['pascoa'] - 47 * 86400;

//Corpus Christi
$datas2 = $datas['pascoa'] + 60 * 86400;

//Paixão de Cristo
$datas3 = $datas['pascoa'] - 2 * 86400;

function converter($time)
{
        return date("d/m/Y", $time);
}

echo"<li>Carnaval =". "datas1";
echo"<li>Sexta-feira Santa=". "datas2";
echo "<li>Corpus Christi=". "datas3";
echo "</ul>";

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...