Obtener fechas dentro de un rango de fechas

Me gustaría que me ayudaran con esto.

Tengo una fecha inicial y una fecha final y quiero mostrá las fechas que están dentro de ese rango en un listbox, las fechas inicial y final son introducidas en un textbox1 y textbox2 y que solamente muestre las fechas que estén de lunes a viernes omitiendo el sábado y domingo, les agradecería mucho si me contestaran lo más rápido posible.

Ojo quiero imprimir las fechas no que cuente los días.

En visual basic

1 respuesta

Respuesta
1

Me temo que en Visual Basic no existe un método nativo para "restar" dos fechas y obtener el listado, lo único parecido sería el DateDiff pero te devolvería el número de días y no los días en sí por lo que, para hacer lo que necesitas, hay que iterar entre las dos fechas, comprobar que día de la semana es e ir rellenando un array.

Sería algo así:

' Conversión burda de texto a fecha: validar formatos para evitar excepciones'
Dim fechaInicio as Date = Convert.ToDateTime(TextBox1.Text)
Dim fechaFin as Date = Convert.ToDateTime(TextBox2.Text)
'Declaración de variables que necesitamos para el algoritmo'
Dim fechaControl As Date = fechaInicio 
Dim fechasEntreSemana As New List(Of Date)
'Bucle que recorre fechas'
Do While (fechaControl <= fechaFin)
  'Comprobamos que la fecha actual sea un día entre semana'
  If Weekday(fechaControl) < 6 Then
    fechasEntreSemana.Add(fechaControl)
  End If
  fechaControl = fechaControl.AddDays(1)
Loop
'Al finalizar el bucle tendrás las fechas entre semana encontradas entre fechaInicio y fechaFin en el array fechasEntreSemana'

¡Gracias! 

y pues si me dio una idea de como hacerlo, no exactamente como lo puso pero ya obtengo mis datos como los quería.

Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas