internal static List <DateTime> generarDiasQueTrabajaRango(Profesional prof, int id_especialidad, Rango_Atencion r)
        {
            List <DateTime>  dias           = Rango_Atencion.generarDiasRango(r);
            List <DayOfWeek> diasQueTrabaja = prof.diasQueTrabajaNormalmente(id_especialidad, r);

            dias.RemoveAll(dia => !diasQueTrabaja.Contains(dia.DayOfWeek));
            return(dias);
        }
        internal static bool SeSolapan(Int64 matricula, Rango_Atencion rango)
        {
            List <DateTime> diasRangosActuales = new List <DateTime>();

            Rango_Atencion.rangosPorProfesional(matricula).ForEach(r => diasRangosActuales.AddRange(Rango_Atencion.generarDiasRango(r)));
            List <DateTime> diasRangoNuevo = Rango_Atencion.generarDiasRango(rango);

            return(diasRangoNuevo.Any(dia => diasRangosActuales.Select(d => d.Date).Contains(dia.Date)));
        }
        public static Int64 rangoPorDia(Int64 matricula, int id_especialidad, DateTime dia)
        {
            List <Rango_Atencion> rangos = Rango_Atencion.rangosPorProfesional(matricula);

            return(rangos.Find(rango => Rango_Atencion.generarDiasRango(rango).Contains(dia)).id_rango);
        }