CSPromex
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.


Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceBuscarÚltimas imágenesChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
» Sockets Conexion,Envio y recepcion de datos (mini-chat Cliente-Servidor)
Calendario hecho Manualmente I_icon_minitimeSáb Sep 30, 2023 6:24 pm por EurekaMartin

» Graficos: Grafica circular
Calendario hecho Manualmente I_icon_minitimeMar Mar 05, 2019 4:58 pm por Luis Garcia

» Calendario hecho Manualmente
Calendario hecho Manualmente I_icon_minitimeMar Mar 05, 2019 3:52 pm por Luis Garcia

» Activar el protector de pantalla.
Calendario hecho Manualmente I_icon_minitimeMar Mar 05, 2019 3:12 pm por Luis Garcia

» Hacer backup de MySql desde C#
Calendario hecho Manualmente I_icon_minitimeMar Abr 18, 2017 10:04 pm por maurifl

» Sockets programa para Ciber Cafe (Cliente-Servidor)
Calendario hecho Manualmente I_icon_minitimeLun Ago 10, 2015 5:45 pm por artes

» Ayuda crear emoticones en un chat
Calendario hecho Manualmente I_icon_minitimeDom Jul 12, 2015 9:00 pm por yeco96

» Necesito ayuda para pasar datos a un Datagridview
Calendario hecho Manualmente I_icon_minitimeDom Jun 07, 2015 4:33 pm por rafaelfa

» Reproductor de música->Lista de reproducción (Guardar-Cargar)
Calendario hecho Manualmente I_icon_minitimeLun Jun 01, 2015 3:00 pm por kevin22

Buscar
 
 

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

 

 Calendario hecho Manualmente

Ir abajo 
2 participantes
AutorMensaje
Luis Garcia
STAFF TEAM
STAFF TEAM
Luis Garcia


Mensajes : 64
Puntos : 112

Calendario hecho Manualmente Empty
MensajeTema: Calendario hecho Manualmente   Calendario hecho Manualmente I_icon_minitimeVie 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
maurifl
Novato
maurifl


Mensajes : 3
Puntos : 3
Localización : Argentina

Calendario hecho Manualmente Empty
MensajeTema: Re: Calendario hecho Manualmente   Calendario hecho Manualmente I_icon_minitimeMar Abr 18, 2017 10:02 pm

Consulta, sabrán realizar una agenda ya que se encuentra el calendario, lo que le faltaria es poder agregar datos como minuta de reunion, franja horaria......desde ya gracias, muy bueno el codigo!
Volver arriba Ir abajo
Luis Garcia
STAFF TEAM
STAFF TEAM
Luis Garcia


Mensajes : 64
Puntos : 112

Calendario hecho Manualmente Empty
MensajeTema: Re: Calendario hecho Manualmente   Calendario hecho Manualmente I_icon_minitimeMar Mar 05, 2019 3:52 pm

De nada amigo, No lo hemos realizado pero podríamos hacer un pequeño ejemplo.

Sorry por la demora.
Volver arriba Ir abajo
Contenido patrocinado





Calendario hecho Manualmente Empty
MensajeTema: Re: Calendario hecho Manualmente   Calendario hecho Manualmente I_icon_minitime

Volver arriba Ir abajo
 
Calendario hecho Manualmente
Volver arriba 
Página 1 de 1.
 Temas similares
-
» Activar el protector de pantalla.

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