ano = $ano;
$this->mes = $mes;
$this->hoje = date('j');
$this->nome_mes[1]="Janeiro";
$this->nome_mes[2]="Fevereiro";
$this->nome_mes[3]="Março";
$this->nome_mes[4]="Abril";
$this->nome_mes[5]="Maio";
$this->nome_mes[6]="Junho";
$this->nome_mes[7]="Julho";
$this->nome_mes[8]="Agosto";
$this->nome_mes[9]="Setembro";
$this->nome_mes[10]="Outubro";
$this->nome_mes[11]="Novembro";
$this->nome_mes[12]="Dezembro";
$this->dia_na_semana = date(w, mktime(0, 0, 0, $this->mes, 1, $this->ano));
$this->dias_no_mes = date("t", mktime(0, 0, 0, $this->mes, 1, $this->ano));
//$this->prepara_feriados();
}
//************************************************************************************************
function prepara_feriados_regionais()
{
switch ($this->mes)
{
case 2: # Nossa Senhora dos Navegantes(2 de Fev.):
//$this->feriados[2]='Nossa Senhora dos Navegantes';
break;
case 9: # I# Revolucao Farroupilha:
//$this->feriados[20]='Revolucao Farroupilha';
break;
default:
break;
}
}
//************************************************************************************************
function prepara_feriados_nacionais()
{
$a= $this->ano % 19;
$b= $this->ano % 4;
$c= $this->ano % 7;
$aux1=(19 * $a) + 24;
$d= $aux1 % 30;
$aux1= (2 * $b) + (4 * $c) + (6 * $d) + 5;
$e= $aux1 % 7;
$dia_pascoa= 22 + $d + $e;
$mes_pascoa= 3;
if($dia_pascoa > 31)
{
$mes_pascoa = 4;
$dia_pascoa = $dia_pascoa - 31;
if($dia_pascoa > 25)
{
$dia_pascoa= $dia_pascoa - 7;
}
}
$pascoa = strtotime("$this->ano/$mes_pascoa/$dia_pascoa");
$carnaval = strtotime("$this->ano/$mes_pascoa/$dia_pascoa -47 days");
$sexta_santa = strtotime("$this->ano/$mes_pascoa/$dia_pascoa -2 days");
$corpus = strtotime("$this->ano/$mes_pascoa/$dia_pascoa +60 days");
if($this->mes == strftime("%m",$pascoa))
{
$this->feriados[strftime("%d",$pascoa)*1] = 'Pascoa';
$this->feriados[strftime("%d",$sexta_santa)*1] ='Sexta-feira Santa';
}
if($this->mes == strftime("%m",$carnaval))
{
$this->feriados[(strftime("%d",$carnaval)*1)-1] = 'Carnaval'; // segunda-feira de carnaval
$this->feriados[strftime("%d",$carnaval)*1] = 'Carnaval'; // terca-feira de carnaval
}
if($this->mes == strftime("%m",$corpus))
{
$this->feriados[strftime("%d",$corpus)*1] = 'Corpus Cristi';
}
switch ($this->mes)
{
case 1: # Primeiro de Janeiro:
$this->feriados[1]='Confraternização Universal';
break;
case 4: # Tiradentes:
$this->feriados[21]='Tiradentes';
break;
case 5: # Dia do trabalhador:
$this->feriados[1]='Dia do Trabalho';
break;
case 9: # Indepndencia do Brasil:
$this->feriados[7]='Dia da Independência';
break;
case 10: # Nossa Senhora Aparecida:
$this->feriados[12]='Dia de Nossa Senhora Aparecida';
break;
case 11: # Finados/ Republica:
$this->feriados[2]='Finados';
$this->feriados[15]='Proclamação da República';
break;
case 12: # Natal:
$this->feriados[25]='Natal';
break;
default:
break;
}
}
//************************************************************************************************
function prepara_feriados()
{
for($i=1;$i<$this->dias_no_mes+1;$i++)
{
$this->feriados[$i] = '';
}
# Feriados nacionais ...
$this->prepara_feriados_nacionais();
# Feriados regionais ...
# $this->prepara_feriados_regionais();
}
//************************************************************************************************
function pega_feriados_do_mes()
{
$this->prepara_feriados();
return $this->feriados;
}
}
// ************************************************************************************************
// **************************************** Fim da CLASSE ***************************************
// ************************************************************************************************
//
// INICIO ......
// ************************************************************************************************
// Monta o arquivo de feriados de um determinado periodo
// ************************************************************************************************
$ano=date('Y'); // Ano corrente
$dados='';
$pAno = $ano-6; // Ano inicial
while ($pAno< $ano+20)
{
$pMes = 1;
while ($pMes<13)
{
//$a = new calendario($pAno,$pMes,false);
$a = new calendario($pAno,$pMes);
$feriados = $a->pega_feriados_do_mes();
// GERA O Arquivo de feriados
if($feriados)
{
// Ppercorre feriados...
foreach ($feriados as $dia => $nome)
{
if($nome)
{
$dados .= "BR\t".$nome."\t".$dia."\t".$pMes."\t".$pAno."\t0\t0\n";
}
}
}
unset($feriados);
$pMes = $pMes + 1;
}
$pAno = $pAno + 1;
}
//Grava O RESULTADO
//echo $dados;
$h = fopen ("holidays.BR.csv", "wb");
fwrite($h,"$dados");
echo '
Mover o arquivo gerado(holidays.BR.csv) para /var/www/expresso/calendar/egroupware
';
echo '
O Arquivo é gerado na pasta em que este script foi colocado.
O usuário com o qual o script é executado deve ter permissao de escrita na pasta.';
echo '
Logado como "administrador":
1 - Clique no icone "administrador", no painel superior.
2 - No bloco "Agenda de Eventos", clique em "Configuração do servidor".
3 - Selecione "Sim" em "Deseja carregar automaticamente arquivos de feriados do Calendário dinâmicamente? " .
4 - Selecione "localhost" em "Local de onde carregar automaticamente:".
5 - Clique em "Salvar".
6 - Clique no icone "administrador", no painel superior.
7 - No bloco "Agenda de Eventos", clique em "Manutenção de feriados do Calendário"
8 - Na linha relativa ao pais "BR", clique em "remover". Confirme a remoção.
Pronto.
Na próxima vez que o calendário for consultado o novo arquivo de feriados vai ser carregado no bco.'
?>