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

Hacer un Conteo de Dias

Estas en el tema de Hacer un Conteo de Dias en el foro de .NET en Foros del Web. Hola a Todos he estado teniendo problemas con un codigo que en principio me parecía sencillo. (Parece que no tanto para mi xD) Lo que ...
  #1 (permalink)  
Antiguo 25/04/2016, 12:10
 
Fecha de Ingreso: abril-2016
Mensajes: 1
Antigüedad: 8 años
Puntos: 0
Pregunta Hacer un Conteo de Dias

Hola a Todos he estado teniendo problemas con un codigo que en principio me parecía sencillo. (Parece que no tanto para mi xD)

Lo que quiero es Contar los días que han pasado desde una fecha dada en un DateTimePicker hasta otra fecha en otro datetimepicker pero sin contar los días de fin de semana.

Algo Así: si se ingresa como fecha 1: Lunes 25 de Abril y como fecha 2 Domingo 1 de Mayo. Quiero que el conteo diga "5" que son los días de semana correspondientes a esa semana.

He hecho esto:
Dim finde, daycont, inicio As Integer
Dim Fecha1, Fecha2 As Integer
Dim Fecha_evaluar As Date
Fecha_evaluar = DateTimePicker1.Value
Fecha1 = DatePart(DateInterval.DayOfYear, DateTimePicker1.Value)
Fecha2 = DatePart(DateInterval.DayOfYear, DateTimePicker2.Value)
Inicio = Weekday(DateTimePicker1.Value)

If Not inicio = 1 Or inicio = 7 Then 'Para que cuente el primer dia si no es Sabado o 'Domingo
daycont = 1
Else
daycont = 0
End If

For i = Fecha1 To Fecha2
Fecha_evaluar = Fecha_evaluar.AddDays(1)
finde = Weekday(Fecha_evaluar)
If Not finde = 1 Or finde = 7 Then
daycont = daycont + 1
End If

Next
TextBox1.Text = CStr(daycont)


Pero Siempre me cuenta todos los días incluyendo fines de semana. Y ya se me acabaron las ideas. ¿Alguien me ayuda?
  #2 (permalink)  
Antiguo 25/04/2016, 15:57
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 7 meses
Puntos: 48
De acuerdo Respuesta: Hacer un Conteo de Dias

Tienes que calcular los días hábiles que tiene la primera semana, luego calculas el total de días que existen a partir de la segunda semana(comenzando en el lunes).

A ese segundo calculo le restas 2 días cada 7 días y listo.

Total = calculo1 + calculo2;

Te hice un ejemplo en C# para calcular los días hábiles:
Código C:
Ver original
  1. DateTime day1 = DateTime.Now;
  2. DateTime day2 = day1.AddDays(14);
  3.  
  4. int habiles_semana1 = (int)DayOfWeek.Saturday - (int)day1.DayOfWeek;//Sabado - viernes = 1 ;; sabado - lunes = 5 días habiles
  5. int dias_parte2 = (int)(day2  - day1.AddDays(habiles_semana1 + 2)).TotalDays+1;//+1 porque incluimos el dia de termino. ej: entre lunes 13 y martes 14 = 14-13=1 día, si queremos incluir el día 14 sumamos 1 y eso nos da 2 días(lunes y martes).
  6. int habiles_parte2 = (dias_parte2 - ((int)(dias_parte2 / 7)) * 2) - ((dias_parte2 + 1) % 7 == 0 ? 1 : 0);//Cada 7 días restamos 2 días y si la ultima semana termine en sabado restamos 1 día.
  7. int total_habiles = habiles_semana1 + habiles_parte2;

Bienvenido al foro.

Etiquetas: Ninguno
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 17:11.