1
I have this form:
As the person puts the date of birth and clicks on identify category is made two checks:
- If the name has been filled in;
- If the date of birth is greater than the current date;
But the validation is not working as it should, see the codes:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _2.MatriculaAluno
{
public partial class frmMatriculaAlunoV2 : Form
{
public frmMatriculaAlunoV2()
{
InitializeComponent();
lblHoje.Text = "Hoje é " + DateTime.Now.ToShortDateString(); //Fornece a data atual a label
}
private void frmMatriculaAlunoV2_Load(object sender, EventArgs e)
{
}
private void btnIdentificar_Click(object sender, EventArgs e)
{
TimeSpan TsQuantidadeDias = DateTime.Now.Date - dtpDataNascimento.Value;
int idade = (TsQuantidadeDias.Days / 365);
if (txtNome.Text == String.Empty)
{
MessageBox.Show("Todos os dados solicitados devem ser informados", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
if (idade > 17)
{
lblCategoria.Text = "Adulto";
}
else if (idade > 13)
{
lblCategoria.Text = "Juvenil B";
}
else if (idade > 10)
{
lblCategoria.Text = "Juvenil A";
}
else if (idade > 7)
{
lblCategoria.Text = "Infantil B";
}
else if (idade >= 5)
{
lblCategoria.Text = "Infantil A";
}
else
{
lblCategoria.Text = "Não existe categoria";
}
}
}
private void lblHoje_Validating(object sender, CancelEventArgs e)
{
if (dtpDataNascimento.Value.Year < DateTime.Now.Date.Year)
{
MessageBox.Show("O ano do último aniversário deve ser superior ao do ANO DE NASCIMENTO", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Error);
e.Cancel = true; // não deixa passar a validação até o usuário não arrumar
}
}
}
}
Observation, the event
Validating
is referenced in the current date label and date of birth.
Which part isn’t working, young man?
– Jéf Bueno
@LINQ was to give an error message when I put the date of birth higher than the current date
– WSS