using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; public partial class Conteudos_Agenda_Inc_Calendario_Calendario : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { /* ================================================================================= */ /* ================================================================================= */ if (Request.ServerVariables["HTTP_REFERER"] == null || (Request.ServerVariables["HTTP_REFERER"].ToUpper().IndexOf(Request.ServerVariables["SERVER_NAME"].ToUpper()) < 0 && Request.ServerVariables["HTTP_REFERER"].ToUpper().IndexOf(Request.ServerVariables["SERVER_PORT"].ToUpper()) < 0)) { // REDIRECCIONA PARA A PÁGINA DE LOGIN.aspx // CASO ESTA PÁGINA SEJA ACEDIDA DIRECTAMENTE SEM PASSAR PELO SITE Response.Redirect("/login.aspx"); } int ano = 0; int mes = 0; string[] meses = new string[12] { Resources.Meses.mes1, Resources.Meses.mes2, Resources.Meses.mes3, Resources.Meses.mes4, Resources.Meses.mes5, Resources.Meses.mes6, Resources.Meses.mes7, Resources.Meses.mes8, Resources.Meses.mes9, Resources.Meses.mes10, Resources.Meses.mes11, Resources.Meses.mes12 }; ano = Convert.ToInt16(Request.QueryString["a"].ToString()); if (ano == 0) { ano = DateTime.Now.Year; } mes = Convert.ToInt16(Request.QueryString["m"].ToString()); if (mes == 0) { mes = DateTime.Now.Month; } /* ************************************************************************************************* */ /* PREENCHIMENTO DO CALENDÁRIO */ string[,] semanas = new string[6, 7]; // VERIFICAR QUAL O DIA DA SEMANA DO 1º DIA DO MÊS // E PREENCHER ESSES DIAS DA SEMANA COM VALORES A ZERO PreencherDiasMesAnterior(Convert.ToInt16(new DateTime(ano, mes, 1).DayOfWeek), semanas); // PREENCHIMENTO DOS DIAS DO MÊS ACTUAL PreencherDiasMes(ano, mes, semanas); divSemana1.InnerHtml = ""; divSemana2.InnerHtml = ""; divSemana3.InnerHtml = ""; divSemana4.InnerHtml = ""; divSemana5.InnerHtml = ""; divSemana6.InnerHtml = ""; for (int i = 0; i < 7; i++) divSemana1.InnerHtml = divSemana1.InnerHtml + semanas[0, i]; for (int i = 0; i < 7; i++) divSemana2.InnerHtml = divSemana2.InnerHtml + semanas[1, i]; for (int i = 0; i < 7; i++) divSemana3.InnerHtml = divSemana3.InnerHtml + semanas[2, i]; for (int i = 0; i < 7; i++) divSemana4.InnerHtml = divSemana4.InnerHtml + semanas[3, i]; for (int i = 0; i < 7; i++) divSemana5.InnerHtml = divSemana5.InnerHtml + semanas[4, i]; for (int i = 0; i < 7; i++) divSemana6.InnerHtml = divSemana6.InnerHtml + semanas[5, i]; } /// /// Preenche os dias do mês anterior em branco /// /// Dia da semana do 1º dia do mês actual /// Matriz com os divs das semanas do calendário void PreencherDiasMesAnterior(int PrimeiroDiaDoMesActual, string[,] semana) { if (PrimeiroDiaDoMesActual != 1) { if (PrimeiroDiaDoMesActual == 0) { // DOMINGO for (int i = 0; i < 6; i++) { // SÁBADO if (i == 5) { semana[0, i] = semana[0, i] + "
" + "
 
"; } else { semana[0, i] = semana[0, i] + "
 
"; } } } else { // OUTROS DIAS DA SEMANA PARA ALÉM DA SEGUNDA-FEIRA for (int i = 0; i < PrimeiroDiaDoMesActual - 1; i++) { semana[0, i] = semana[0, i] + "
 
"; } } } } /// /// Preenchimento dos dias do mês actual /// /// Ano actual /// Mês actual /// Matriz com os divs das semanas do calendário void PreencherDiasMes(int Ano, int Mes, string[,] semanas) { // AGENDA DataTable _agenda; _agenda = SiteECom.Conteudos.Agenda.Listagem(Ano, Mes); int semana = 0; int diasasemana = 0; string eventos = ""; DateTime data; DateTime _actividade; char[] ponto = new char[1] { '.' }; char[] espaco = new char[1] { ' ' }; string[] inicio; string[] inicio_data; string inicio_hora = ""; string[] fim; string[] fim_data; string fim_hora; for (int dia = 1; dia <= DateTime.DaysInMonth(Ano, Mes); dia++) { eventos = ""; data = new DateTime(Ano, Mes, dia); /* ********************************************************************************* */ // VERIFICAR EVENTOS NESTA DATA foreach (DataRow evento in _agenda.Rows) { try { inicio = evento.ItemArray[8].ToString().Split(espaco); inicio_data = inicio[0].ToString().Split(ponto); inicio_hora = inicio[1].ToString(); _actividade = new DateTime(Convert.ToInt16(inicio_data[0].ToString()), Convert.ToInt16(inicio_data[1].ToString()), Convert.ToInt16(inicio_data[2].ToString())); } catch (Exception) { // ACTIVIDADE = '0000.00.00' _actividade = new DateTime(1, 1, 1); } if (data.CompareTo(_actividade) == 0) { /* ************************************************************************* */ /* DETALHES DE EVENTO */ eventos = eventos + "
" + " " + " " + inicio_hora + "" + " " + " " + evento.ItemArray[10].ToString() + "" + "
"; } } if (eventos.Length > 0) { string _dataEvento = data.Year + "." + data.Month + "." + data.Day; eventos = "
" + "
" + " " + " +" + " " + "
" + "
" + dia + "
" + eventos + "
"; } /* ********************************************************************************* */ diasasemana = Convert.ToInt16(new DateTime(Ano, Mes, dia).DayOfWeek); if (diasasemana == 6 || diasasemana == 0) { // FIM DE SEMANA if (eventos == "") { /* ********************************************************************************* */ /* SEM EVENTOS NESTE DIA */ // FIM DE SEMANA // SÁBADO if (diasasemana == 6) semanas[semana, diasasemana - 1] = "
" + "
" + dia + "
"; // DOMINGO if (diasasemana == 0) semanas[semana, 6] = "
" + dia + "
" + "
"; } else { /* ********************************************************************************* */ /* COM EVENTOS NESTE DIA */ // FIM DE SEMANA // SÁBADO if (diasasemana == 6) semanas[semana, diasasemana - 1] = "
" + "
" + " " + eventos + "
"; // DOMINGO if (diasasemana == 0) semanas[semana, 6] = "
" + " " + eventos + "
" + "
"; } } else { // SEMANA if (eventos == "") { /* ********************************************************************************* */ /* SEM EVENTOS NESTE DIA */ // DIAS DA SEMANA semanas[semana, diasasemana - 1] = "
" + dia + "
"; } else { /* ********************************************************************************* */ /* COM EVENTOS NESTE DIA */ // DIAS DA SEMANA semanas[semana, diasasemana - 1] = "
" + " " + eventos + "
"; } } // MUDANÇA DE SEMANA if (diasasemana == 0) { semana = semana + 1; } } } }