Hace poco tiempo empece a desarrollar otra app. Esta se fundamenta en un calendario y como es lógico hay que implementarlo. Me decidí por utilizar un par de clases que ya estaban hechas y ahí llegaron los problemas...
Las dos clases que iba a probar tenían establecido, como primer día de la semana el Domingo, y en muchos países (incluido en el que vivo) la semana comienza en Lunes así que había que cambiarlo.
Eso hice, pregunté en el foro y el amigo "vampirbcn" me remitió a lo mismo que había ojeado una y otra vez sin éxito...
Esta vez la cosa cambió, había estado mirando la parte difícil del código sin darme cuenta de que en la parte fácil, en la declaración de variables estaba la solución a tanto tiempo perdido.
Al final, conseguí modificar no una clase sino las dos, una de ellas gracias en gran parte a "vampirbcn" que, aunque me remitió al mismo post que había leído muchas veces, me sirvió de empujón para volver a intentarlo.
La otra ya fue mirar donde tenia que mirar y modificar :)
Os dejo las soluciones a las dos clases por si a alguien mas le viene bien.
Custom Calendar
Para cambiar los días de la semana y que comience en Lunes en vez de en Domingo vamos a cambiar la linea:
Por esta otra:Public NmFullday(8) As String : NmFullday = Main.Local.WeekDays 'NmFullday = Array As String("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi")
Public NmFullday(8) As String : NmFullday = Array As String("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo")
Pero con esto solo no basta, de echo, solo hemos cambiado el nombre de las etiquetas, ahora para cambiar el orden de los días en el calendario cambiamos la linea:
Por esta otra:
Y con esto ya tenemos nuestro calendario empezando en Lunes y totalmente funcional
AnotherDatePicker
La primera linea que vamos a cambiar cambiar es la de los label que son los que contienen el nombre de los días, así que modificamos la linea:
Y la dejamos así:
Como veis solo hemos cambiado el orden de los label, desplazandolos una posición a la izquierda.
Y ahora cambiamos la linea:
Por esta otra:
Y listo, ya tenemos la clase cambiada para que arranque en Lunes y funcionando ;-)
Gracias a vampirbcn por mostrarme lo que había leido 20 veces y aun así no era capaz de ver lo evidente ;-)
Enlace al post y las classes
Un saludo a tod@s
Eugenio J. Sánchez
nday = (DateTime.GetDayOfWeek(SomeTime)-1) 'FirstDayOfWeek = Sunday
Por esta otra:
nday = (DateTime.GetDayOfWeek(SomeTime)-2) 'FirstDayOfWeek = Monday
Y con esto ya tenemos nuestro calendario empezando en Lunes y totalmente funcional
AnotherDatePicker
La primera linea que vamos a cambiar cambiar es la de los label que son los que contienen el nombre de los días, así que modificamos la linea:
daysNames = Array As Label(Label1, Label2, Label3, Label4, Label5, Label6, Label7)
Y la dejamos así:
daysNames = Array As Label(Label7, Label1, Label2, Label3, Label4, Label5, Label6)
Como veis solo hemos cambiado el orden de los label, desplazandolos una posición a la izquierda.
Y ahora cambiamos la linea:
dayOfWeekOffset = DateTime.GetDayOfWeek(firstDay) Mod 7
Por esta otra:
dayOfWeekOffset = DateTime.GetDayOfWeek(firstDay) -1 Mod 7
Y listo, ya tenemos la clase cambiada para que arranque en Lunes y funcionando ;-)
Gracias a vampirbcn por mostrarme lo que había leido 20 veces y aun así no era capaz de ver lo evidente ;-)
Enlace al post y las classes
Un saludo a tod@s
Eugenio J. Sánchez