Foros del Web » Programación para mayores de 30 ;) » .NET »

Calendario en C#

Estas en el tema de Calendario en C# en el foro de .NET en Foros del Web. Hola a todos, necesitaria saber como crear un calendario en C# con un DataGrid, tengo que hacer un trabajo sobre una clinica, mi parte es ...
  #1 (permalink)  
Antiguo 04/10/2009, 11:51
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Calendario en C#

Hola a todos, necesitaria saber como crear un calendario en C# con un DataGrid, tengo que hacer un trabajo sobre una clinica, mi parte es sobre los medicos que trabajan en esa clinica, y tengo que mostrar los dias del mes que ese medico trabaja resaltado con otro color, viendo que esto no lo puedo hacer con un MonthCalendar. Tengo un combobox que va eligiendo los meses para mostrar en el calendario y otro para el año, pero se me hace dificil al hacer el calendario, porque tengo que saber cual es el primer dia del mes. como podria hacerlo?

Uso un DataGrid para poder ingresar nuevos dias en el que ese medico va a trabajar.

No se si me aclare por desde ya Muchas gracias!!!!
  #2 (permalink)  
Antiguo 04/10/2009, 19:43
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 18 años, 10 meses
Puntos: 5
De acuerdo Calendario en C#

Hola, Mauricio
Estas usando una BD ?.
Si fuera asi podrias gestionar de una mejor manera.

Tablas:

- Medicos
- Cronograma

podria ser asi ?.
Si tienes algo avanzado postea tu codigo y sino avanzamos sobre la idea del par de tablas.


Espero que te ayude.
Saludos
__________________
. .: El mejor Inicio :. .
  #3 (permalink)  
Antiguo 05/10/2009, 16:28
Avatar de eledgarr  
Fecha de Ingreso: octubre-2008
Ubicación: La ciudad de la esperanza
Mensajes: 133
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Calendario en C#

Para saber el primer dia del mes:

DateTime.DaysInMonth(año, mes) 'es VB2005

tengo un codigo parecido a lo que quieres pero manejo labels y Textbox, si te interesa podemos intercambiar para ver como lo aplico a un DGV
  #4 (permalink)  
Antiguo 06/10/2009, 14:32
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Calendario en C#

Hola atak y eledgarr, gracias por responder, bueno uso una base de datos donde tengo una tabla para los medicos cuyo codigo es un numero de legajo, tambien tengo una tabla llamada dias que guardo los dias de la semana con un numero de dia, a parte tengo una tabla llamada profesional_del_dia, ahi es donde guardo que profesional trabaja en un determinado dia, solo con esas tres tablas llenaria el calendario, lo de el cronograma es un DGV aparte.

tengo mas o menos el codigo pero es en VB6, se me complica en c# porque en VB6 esta la funcion weekday, donde le doy el primer dia del mes y año seleccionado, y me devuelve un numero de dia de la semana:

'Carga el calendario segun se elija
If Not IsNumeric(Año.Text) Then
MsgBox "Complete el año con un valor numerico", vbCritical
Exit Sub

End If

Select Case Meses.ListIndex + 1
Case 1, 3, 5, 7, 8, 10, 12
dias = 31
Case 4, 6, 9, 11
dias = 30
Case 2
dias = 28
If CInt(Año.Text) Mod 4 = 0 Then
dias = 29
End If
If CInt(Año.Text) Mod 100 = 0 Then
dias = 28
End If
If CInt(Año.Text) Mod 1000 = 0 Then
dias = 29
End If

End Select

M = Weekday(CDate("1/" & Meses.ListIndex + 1 & "/" & Año.Text))
For i = 1 To 7 Step 1
For b = 0 To 6 Step 1
grilla1.Col = b
grilla1.Row = i
grilla1.Text = ""
grilla1.CellFontBold = False
Next
Next
dia = 1
For fi = 1 To 7 Step 1
If fi = 1 Then
For co = M - 1 To 6 Step 1
grilla1.Col = co
grilla1.Row = fi
If co = 0 Then
grilla1.CellForeColor = vbRed
End If
If co = 6 Then
grilla1.CellForeColor = vbBlue
End If
grilla1.Text = IIf(dia <= dias, dia, "")
dia = dia + 1

Next
Else
For co = 0 To 6 Step 1
grilla1.Col = co
grilla1.Row = fi
If co = 0 Then
grilla1.CellForeColor = vbRed
End If
If co = 6 Then
grilla1.CellForeColor = vbBlue
End If
grilla1.Text = IIf(dia <= dias, dia, "")
dia = dia + 1
Next
End If
Next


mas o menos ese codigo tengo que hacerlo en c#, usaria el DGV para darle al doctor un dia libre especifico o darle de lisencia
Espero no complicarles tanto Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:38.