none
Definir faixa de data. RRS feed

  • Pergunta

  • pessoal eu estou fazendo uma aplicação ao qual quando cadastro o cliente o mesmo necessita de adicionar a data de nascimento 

    mais estou conseguindo inserir datas na qual a pessoa ainda não havia nascido, ai queria saber como faço para fazer essa faixa de data , para que pessoas com no minimo 18 anos podem ser cadastrada e no máximo 99 anos.....

    obs.: Estou utilizando o entity framework.

    desde já agradeço 

    abraços

    segunda-feira, 29 de abril de 2013 18:06

Respostas

  • Sérginho,

    Você pode utilizar o DataAnnotations, ou criar seus prórpios atributos de validação, segue exemplo:

    Crie seu atributo de validação:

    public class DataNascimentoAttribute : ValidationAttribute
        {
            public DataNascimentoAttribute(string campo)
                : base(String.Format("O valor do {0} precisa estar entre {1} e {2}", campo, DateTime.Now.AddYears(-18).ToShortDateString(), DateTime.Now.AddYears(-99).ToShortDateString())) { }
    
            public override bool IsValid(object value)
            {
                DateTime data = (DateTime)value;
                if (data < DateTime.Now.AddYears(-99) || data > DateTime.Now.AddYears(-18))
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }

    Agora decore a sua propriedade com esses atributos:

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
            [DataNascimentoAttribute("Data Nascimento")]
            public DateTime? DataNascimento { get; set; }


    Att,
    Leandro

    Se foi útil, marque como útil ou como resposta.

    • Sugerido como Resposta Leandro Tozetto quarta-feira, 1 de maio de 2013 14:08
    • Marcado como Resposta Sérginho Alves sábado, 25 de maio de 2013 20:59
    quarta-feira, 1 de maio de 2013 14:08

Todas as Respostas

  • Olá Sérginho,

    Não trabalho com EF, mas caso necessite de uma comparação via Code Behind, você poderia utilizar conforme exemplo:

    //código para teste
    string strDataComparacao = "30/04/2012";
    
    DateTime dtDataComparacao = DateTime.Parse(strDataComparacao, new CultureInfo("pt-BR"));
    
    //trabamento começa aqui
    DateTime dtAtual = DateTime.Today;
    
    bool dataValida = (dtDataComparacao >= dtAtual.AddYears(-99) && dtDataComparacao <= dtAtual.AddYears(-18));

    terça-feira, 30 de abril de 2013 19:51
  • Sérginho,

    Você pode utilizar o DataAnnotations, ou criar seus prórpios atributos de validação, segue exemplo:

    Crie seu atributo de validação:

    public class DataNascimentoAttribute : ValidationAttribute
        {
            public DataNascimentoAttribute(string campo)
                : base(String.Format("O valor do {0} precisa estar entre {1} e {2}", campo, DateTime.Now.AddYears(-18).ToShortDateString(), DateTime.Now.AddYears(-99).ToShortDateString())) { }
    
            public override bool IsValid(object value)
            {
                DateTime data = (DateTime)value;
                if (data < DateTime.Now.AddYears(-99) || data > DateTime.Now.AddYears(-18))
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }

    Agora decore a sua propriedade com esses atributos:

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
            [DataNascimentoAttribute("Data Nascimento")]
            public DateTime? DataNascimento { get; set; }


    Att,
    Leandro

    Se foi útil, marque como útil ou como resposta.

    • Sugerido como Resposta Leandro Tozetto quarta-feira, 1 de maio de 2013 14:08
    • Marcado como Resposta Sérginho Alves sábado, 25 de maio de 2013 20:59
    quarta-feira, 1 de maio de 2013 14:08