Primero crearemos una clase (en mi caso la llame Negocio_Vacaciones, puesto que es una app de nomina)
public class Negocio_Vacaciones
{public int DiasDisfrute(DateTime Fecha_Inicio, DateTime Fecha_Fin)
{ int DiasNormales;
int DiasHabiles;
int Contador;
DateTime Aux_Fecha;
int DiaSemana;
string Aux_FechaInicio;
string Aux_FechaFin;
DiasNormales = 0;
DiaSemana = 0;
DiasHabiles = 0;
Contador = 0;
DiasNormales = Convert.ToInt32((Fecha_Fin - Fecha_Inicio).TotalDays);
Aux_FechaInicio = Fecha_Inicio.ToString("dd-MM-yyyy"); Aux_FechaFin = Fecha_Fin.ToString("dd-MM-yyyy"); if (Aux_FechaInicio != Aux_FechaFin)
{ if (DiasNormales == 2)
{ DiasHabiles = 1;
}
else
{ while (Contador < DiasNormales)
{ Aux_Fecha = Fecha_Inicio.AddDays(Contador);
DiaSemana = GetDayWeek(Aux_Fecha);
if ((DiaSemana != 5) && (DiaSemana != 6))
{ DiasHabiles = DiasHabiles + 1;
}
Contador = Contador + 1;
}
}
}
else
{ DiasHabiles = 0;
}
return DiasHabiles;
}
private int GetDayWeek(DateTime Fecha)
{ int Dia=0;
switch (Fecha.Date.DayOfWeek.ToString())
{ case "Monday":
Dia = 0;
break;
case "Tuesday":
Dia = 1;
break;
case "Wednesday":
Dia = 2;
break;
case "Thursday":
Dia = 3;
break;
case "Friday":
Dia = 4;
break;
case "Saturday":
Dia = 5;
break;
case "Sunday":
Dia = 6;
break;
}
return Dia;
}
}