Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Síguenos:
Crear foro Crear foro Crear foro

Comparte | 
 

 Calendario hecho Manualmente

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Luis Garcia
STAFF TEAM
STAFF TEAM


Mensajes : 61
Puntos : 109

MensajeTema: Calendario hecho Manualmente   Vie Abr 22, 2011 3:57 pm

Muchas veces necesitamos hacer un calendario manualmente para ciertas operaciones en mi caso un registro de llegadas, donde ciertos pictureBox cambiaban de imagen dependiendo de la asistencia cierto día; es decir, el día lunes 2 de enero asistió y se cambiaba la imagen por una palomita, de no haber llegado una tachita.

[Tienes que estar registrado y conectado para ver esa imagen]

Para empezar necesitamos 38 labels con nombres desde el 1 al 38 en mi caso les llamo lblDia y el numero de label es decir el primero sería lblDia1, lblDia2...lblDian.

¿Porque 38 si el mes solo tiene cuanto mucho 31 días?
Esto es porque el primer día del mes puede ser un domingo es decir la semana puede empezar un domingo y esto quiere decir que en los label's empezará el día desde el label numero 7 y que tal si fuesen 31 días en el mes, entonces el ultimo día sería igual a 31+7 que dan como resultado 38, el ultimo dia de este mes sería en el label 38, yo utilizo 42 por comodidad y para hacer el efecto de el calendario completo aunque con 38 label's son suficientes.

Estos controles irán acomodados en filas de 7 columnas que representarán los días de la semana (lunes,martes,etc.) en forma de calendario.

El diseño se encuentra en la parte de arriba.

Insertamos unos controles que necesitaremos:
Un combox
Un textBox

Al combox insertamos los meses del año, mientras que en textbox insertaremos el año del que queremos saber la fecha y los días.

Código:

int var_mesActual = cbMeses.SelectedIndex + 1; // obtengo el mes actual
            int var_anio= int.Parse(txtAño.Text); // obtengo el año actual
            int var_anioNuevo = var_anio;//Año

            int var_mesSiguiente;
            if (cbMeses.SelectedIndex!=11)
            {
                var_mesSiguiente = cbMeses.SelectedIndex + 2; // obtengo el mes siguiente
            }
            else
            {
                var_mesSiguiente = 1; // obtengo el mes siguiente
                var_anioNuevo += 1;
            }
         
            DateTime inicio = Convert.ToDateTime("01/" + var_mesActual + "/" + var_anio);// pongo el 1 porque siempre es el primer día
            DateTime final = Convert.ToDateTime("01/" + var_mesSiguiente + "/" + var_anioNuevo).AddDays(-1); //resto un día al mes y con esto obtengo el ultimo día 1-1=ultimo dia del mes anterior

            int diaInicial = (int)inicio.DayOfWeek;
            if (diaInicial == 0)
            {
                diaInicial = 7;
            }

/* Limpia los primeros labels en caso de no ocuparlos */
            for (int j = 1; j < diaInicial; j++)
            {
                gbDias.Controls["lbl" + j].Text = "";
            }

/* Pone los números de día en cada label */
            int l = 1;
            for (int i = diaInicial; i < (int)final.Day + diaInicial; i++)
            {
                gbDias.Controls["lbl" + i.ToString()].Text = l.ToString();
                l++;
            }

/* Limpia los últimos label's en caso de no ser ocupados */
            for (int j=((int)final.Day) + diaInicial;j  <= 42; j++ )
            {
                gbDias.Controls["lbl" + j].Text = "x";
            }
            lblMes.Text = cbMeses.Items[cbMeses.SelectedIndex].ToString();

Descargar: [Tienes que estar registrado y conectado para ver este vínculo]
Volver arriba Ir abajo
Ver perfil de usuario
 
Calendario hecho Manualmente
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Reloj hecho de marcos de fotos
» como como quitar un calendario
» como hacer que todo el calendario tenga el mismo color de fondo?
» Mi foro se ha redimensionado y se ha hecho más pequeño
» Resaltar fecha en el calendario

Permisos de este foro:No puedes responder a temas en este foro.
CSPromex :: PROGRAMACIÓN EN C# :: Código abierto-
Cambiar a: