Visual Basic.NET - Como calcular días hábiles entre dos fechas excluyendo los sábados y domingos. Ayuda ?

   
Vista:

Como calcular días hábiles entre dos fechas excluyendo los sábados y domingos. Ayuda ?

Publicado por Albert Rafael albert.redvelasquez@gmail.com (1 intervención) el 24/06/2015 00:00:08
Hola a todos los usuarios de LWP. Es para preguntarles acerca de una duda que tengo, verán tengo una ventana con dos DateTimePicker y un botón, lo que quiero lograr es seleccionar dos fechas y que me calcule cuántos días hay entre las dos fechas, excluyendo los sábados y los domingos. Sería de mucha ayuda y gracias.
programadatetime
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de giancarlo

Como calcular días hábiles entre dos fechas excluyendo los sábados y domingos. Ayuda ?

Publicado por giancarlo giangbd5@hotmail.com (280 intervenciones) el 24/06/2015 21:54:38
para el caso de domingos, es asi:, adaptalo un poco

If fechaIni.DayOfWeek = DayOfWeek.Sunday Then
'codigo a ejecutar si es domingo
end if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose A.

Como calcular días hábiles entre dos fechas excluyendo los sábados y domingos. Ayuda ?

Publicado por Jose A. (9 intervenciones) el 25/06/2015 09:05:14
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim Dias As Long
Dim Contador_de_dias As Integer
Dim Fecha_Avanza As Date
Fecha_Avanza = Format(DateTimePicker1.Value, "dd/MM/yyyy")
Dias = DateAndTime.DateDiff(DateInterval.Day, DateTimePicker1.Value, DateTimePicker2.Value) + 1
Contador_de_dias = 0
For I = 1 To Dias
	Fecha_Avanza = DateAndTime.DateAdd(DateInterval.Day, 1, Fecha_Avanza)
	If Format(Fecha_Avanza, "dddd") <> "sábado" And Format(Fecha_Avanza, "dddd") <> "domingo" Then
		Contador_de_dias = Contador_de_dias + 1
	End If
Next
MsgBox("contador de dias sin sábados ni domingos " & Contador_de_dias)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose A.

Como calcular días hábiles entre dos fechas excluyendo los sábados y domingos. Ayuda ?

Publicado por Jose A. (9 intervenciones) el 24/06/2015 23:06:12
Yo, en principio calcularia cuanto dias en total. Pondria un For para que los recorra y dentro del FOR, sumandole 1 al dia de inicio, preguntaria si es sabado o domingo, si no lo es le sumo en otra variable un dia mas..
Probablemente mas lento, pero mas fiable.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como calcular días hábiles entre dos fechas excluyendo los sábados y domingos. Ayuda ?

Publicado por Khristtian (17 intervenciones) el 25/06/2015 04:14:14
debes pensar un poco antes de hacer un bucle que recorra todos los dias del rango.... algo que es absolutamente absurdo.
los algoritmos y la lógica de programación no son de ese tipo de soluciones.

yo lo haría mas o menos así.

fecha fin - fecha inicio = cant dias
luego hay que determinar en que día inicia y termina (lun-mar.....)
la idea es crear otra variable donde a cant dias le sumes los días que faltan para que fecha inicio sea lunes y fecha fin sea domingo
esa nueva cant de días, que serán semanas completas, lo divides en 7
obtendras el numero de semanas
el numero de semanas lo multiplicas por 2 (sab y dom)
obtendrás la cantidad de sab y domingos del periodo (semanas completas)
a la cant de dias inicial (del rango) le restas los sab y dom del periodo y ademas le restas los días que agregaste antes (para crear las semanas completas)

para restar los feriados debes tener una BD de ellos y contar los que se encuentren en el rango, y restarlos también.

si te complica, avísame y te escribo la clase.

debo reconocer que un bucle te dará resultado, pero es una solución básica.... por eso después critican a VB por que sus sistemas se congelan o consumen muchos recursos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar