none
Calcular si Una persona Es mayor de Edad con Linq C# RRS feed

  • 问题

  • hola

    soy novato con linq y deseo realizar el siguiente método en la clase persona de Mi regla de negocio

    public int CalcularEdad(DateTime birthDate, DateTime now)
     {
        int age = now.Year - birthDate.Year;
         if (now.Month < birthDate.Month || (now.Month == birthDate.Month && now.Day < birthDate.Day))
         age--;
     return age;
     }

    aca esta algo de codigo que trate de realizar

            public int EsMayorEdad(Persona entity)
            {
                DateTime fechaHoy = DateTime.Today;
                try
                {
                    using (context)
                    {
                        var e = context.PersonaSet.Where(p => p.FechaNacimiento < fechaHoy).
                            Select fechahoy ; //<---debo seleccionar la entidad Persona y compara y restar fechas para averiguar la edad y determinar si es mayo de 18 años
    
    
                        
                    }
                }
                catch (Exception)
                {
    
                    throw;
                }
                return entity;
            }

    Gracias por la ayuda



    2016年7月21日 19:36

答案

  • hola

    pero no necesitas linq para saber si es mayor de edad, si tienes el metodo  CalcularEdad() porque no lo usas

    public bool EsMayorEdad(Persona entity)
    {
    	int edad = CalcularEdad(entity.FechaNacimiento, DateTime.Today);
    
    	return edad > 18;
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    2016年7月21日 20:16

全部回复

  • Hola greg_dorian2

    prueba así:

    public int EsMayorEdad(Persona entity)
    {
     DateTime fechaHoy = DateTime.Today;
    try
    {
       using(context)
       {
          var e = (from a in context.Persona select a.FechaNacimiento);
       }
    }
    
     int edad = DateTime.Now.Year - e.Value.Year;
    
     if (edad >= 18)
     { 
      //Es mayor de edad
     }
    
    Retorna la edad
     return edad;
    }

    Saludos

     

    Javier

    2016年7月21日 19:48
  • hola

    pero no necesitas linq para saber si es mayor de edad, si tienes el metodo  CalcularEdad() porque no lo usas

    public bool EsMayorEdad(Persona entity)
    {
    	int edad = CalcularEdad(entity.FechaNacimiento, DateTime.Today);
    
    	return edad > 18;
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    2016年7月21日 20:16
  • Esta respuesta me sirvio

    2022年10月29日 22:20