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.
Pergunta
sbarros
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:
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
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.