none
identificar o dia, mês e ano para fazer uma condição

    Question

  • Olá pessoal, estou com o seguinte problema e gostaria muito da ajuda de vocÊs

    tenho que fazer uma condição para o meu campo de data da seguinte forma:

    se o mês for 01 e o dia > 31 aparecer uma messagebox.show dizendo que a data é invalida pois não existe dias maiores que 31 no mês de janeiro.. tenho que fazer isso para  cada mês.

    eu não sei como fazer esta condição, como que eu faço para o sistema entender o que é mes o que é dia e o que é ano, para assim conseguir fazer o IF?

    por favor me ajudem!!

    Obrigado
    Thursday, February 25, 2010 6:44 PM

Answers

  • porque não usar o componente DateTimePicker que já tem tudo isso pronto?

    Se preferir reinventar a roda tenta com o DateTime.TryParse, que ele valida pra você!
    • Proposed as answer by J. Segundo Friday, February 26, 2010 6:12 PM
    • Marked as answer by Harley AraujoOwner Tuesday, March 02, 2010 10:38 AM
    Thursday, February 25, 2010 7:44 PM

All replies

  •  

    DateTime data = Convert.ToDateTime(text1.text);

    int
    dia = data.Day;

     

    int mes = data.Month;

     

    int ano = data.Year;

    a partir dai vc pode construir o if com relação ao dia, mes ou ano.

    no caso do exemplo eu tenho o text1.text sendo uma data no formato(dd/mm/aaaa)

    Thursday, February 25, 2010 6:59 PM
  • porque não usar o componente DateTimePicker que já tem tudo isso pronto?

    Se preferir reinventar a roda tenta com o DateTime.TryParse, que ele valida pra você!
    • Proposed as answer by J. Segundo Friday, February 26, 2010 6:12 PM
    • Marked as answer by Harley AraujoOwner Tuesday, March 02, 2010 10:38 AM
    Thursday, February 25, 2010 7:44 PM
  • Pessoal eu estou fazendo assim, o problema é que esta dando erro no datetime "String was not recognized as a valid DateTime."

    será que alguem pode me ajudar!?

    OBRIGADO!!!




    DateTime data = Convert.ToDateTime(txt_dtdespesa.Text);
                int dia = data.Day;
                int mes = data.Month;
                int ano = data.Year;

               if (dia > 31 && mes == 1)
                {
                    MessageBox.Show("No mês de janeiro não existe dias maiores que 31");
                    txt_dtdespesa.Text = "";
                }

    Monday, March 01, 2010 5:46 PM
  • txt_dtdespesa.Text  deve estar exatamente no formato dd/mm/aaaa

     

    Monday, March 01, 2010 6:48 PM
  • Boa Tarde Daniel,

     

    Preciso da sua ajuda.. Tenho uma linha de codigo assim:

     

     int dia = Convert.ToDateTime(dataContabil).Day;                      
     int mes = Convert.ToDateTime(estruturaConsultarPessoaFisica.DataNascimento).Month;
     int ano = Convert.ToDateTime(estruturaConsultarPessoaFisica.DataNascimento).Year;
     string dataFormatada =dia + "/" + mes + "/" + ano;
     dataFimVigencia = Convert.ToDateTime(dataFormatada).AddYears(85).ToString("dd/MM/yyyy");

     

    Agora estou com um problema pode acontecer de dar data invalida... caso não tenho o dia no mes/ano... exemplo dia 31/02/2010

    Qual codigo eu poderia estra colocando pra isso nao acontecer?

     

    Obrigado

    Aguardo um retorno

    Friday, March 26, 2010 5:44 PM
  • Boa Tarde Mahri,

     

    Preciso da sua ajuda.. Tenho uma linha de codigo assim:

     

     int dia = Convert.ToDateTime(dataContabil).Day;                      
     int mes = Convert.ToDateTime(estruturaConsultarPessoaFisica.DataNascimento).Month;
     int ano = Convert.ToDateTime(estruturaConsultarPessoaFisica.DataNascimento).Year;
     string dataFormatada =dia + "/" + mes + "/" + ano;
     dataFimVigencia = Convert.ToDateTime(dataFormatada).AddYears(85).ToString("dd/MM/yyyy");

     

    Agora estou com um problema pode acontecer de dar data invalida... caso não tenho o dia no mes/ano... exemplo dia 31/02/2010

    Qual codigo eu poderia estra colocando pra isso nao acontecer?

     

    Obrigado

    Aguardo um retorno
    Friday, March 26, 2010 5:45 PM
  • rumorumo,

     

    Como eu disse use o componente DateTimePicker, ele não deixa o usuario escolher data invalida.

     

    Mas se de alguma forma o sistema ja estiver pronto e for inviavel trocar o componente, use o DateTime.TryParse, ele tenta converter, e retorna um bool se for uma data valida ou não.

    Vou tentar mostrar com o seu exemplo:

     

    int dia = Convert.ToDateTime(DateTime.Now).Day;
                int mes = Convert.ToDateTime(DateTime.Now).Month;
                int ano = Convert.ToDateTime(DateTime.Now).Year;
                string dataFormatada = dia + "/" + mes + "/" + ano;
                DateTime dt;

                if (DateTime.TryParse(dataFormatada, out dt))
                {
                    string dataFimVigencia = dt.AddYears(85).ToString("dd/MM/yyyy");
                }
                else
                {
                    MessageBox.Show("Data Invalida");
                }

    Monday, April 05, 2010 6:58 PM