I am using Two Dtpicker control. One for register date and another is Birth date. So, I want to display Age in Year, Month, Day into another three different combo box. These three combo box also connecting with BirthDatePicker because if someone don't know the birth date then they will enter Age or Month or Day then Birth Date will calculate through register date. I am getting everything correct but sometimes it's not showing correct value when Register Day less than Birth Day value. If i give an example like Register date-12/12/2012 and Birth Date is 28/02/1989 then I am not able to select Birth Date 28th February from BirthDatePicker. Because birthdatepicker not shown the day. I am giving my using code.Anyone can help......
-----Form Load Event
cboAgeYr.Items.Clear();
for (int i = 0; i < 140; i++)
cboAgeYr.Items.Add(i);
cboAgeMo.Items.Clear();
for (int i = 0; i < 12; i++)
cboAgeMo.Items.Add(i);
cboAgeDa.Items.Clear();
for (int i = 0; i < 31; i++)
cboAgeDa.Items.Add(i);
dtpRegDate.ShowUpDown = true;
dtpRegDate.MaxDate = DateTime.Today;
dtpRegDate.MinDate = new DateTime(2012, 11, 08);
dtpRegDate.CustomFormat = "dd/MM/yyyy";
dtpRegDate.Value = DateTime.Today;
dtpBirthDate.ShowUpDown = true;
dtpBirthDate.MaxDate = DateTime.Today;
dtpBirthDate.MinDate = new DateTime(1800, 01, 01);
dtpBirthDate.CustomFormat = "dd/MM/yyyy";
dtpBirthDate.Value = DateTime.Today;
-------dtpBirthDate_LostFocus
DateTime RegDate = dtpRegDate.Value;
DateTime BDate = dtpBirthDate.Value;
BDate = BDate.Date;
RegDate = RegDate.Date;
var AgeInDay = RegDate.Day - BDate.Day;
if (AgeInDay < 0)
{
var newNow = RegDate.AddMonths(-1);
AgeInDay += (int)(RegDate - newNow).TotalDays;
RegDate = newNow;
}
var AgeInMonth = RegDate.Month - BDate.Month;
if (AgeInMonth < 0)
{
AgeInMonth += 12;
RegDate = RegDate.AddYears(-1);
}
var AgeInYear = RegDate.Year - BDate.Year;
cboAgeYr.Text = AgeInYear.ToString();
cboAgeMo.Text = AgeInMonth.ToString();
cboAgeDa.Text = AgeInDay.ToString();
------cboAgeYr_SelectedIndexChanged
if (cboAgeYr.Text.Length == 0)
{
AgeYrValue = 0;
}
else
{
AgeYrValue = Convert.ToInt32(cboAgeYr.Text);
}
if (cboAgeMo.Text.Length == 0)
{
AgeMoValue = 0;
}
else
{
AgeMoValue = Convert.ToInt32(cboAgeMo.Text);
}
if (cboAgeDa.Text.Length == 0)
{
AgeDaValue = 0;
}
else
{
AgeDaValue = Convert.ToInt32(cboAgeDa.Text);
}
DateTime TemDate = dtpRegDate.Value;
TemDate = TemDate.AddYears(-AgeYrValue);
TemDate = TemDate.AddMonths(-AgeMoValue);
TemDate = TemDate.AddDays(-AgeDaValue);
dtpBirthDate.Value = TemDate;
-------cboAgeMo_SelectedIndexChanged
if (cboAgeYr.Text.Length == 0)
{
AgeYrValue = 0;
}
else
{
AgeYrValue = Convert.ToInt32(cboAgeYr.Text);
}
if (cboAgeMo.Text.Length == 0)
{
AgeMoValue = 0;
}
else
{
AgeMoValue = Convert.ToInt32(cboAgeMo.Text);
}
if (cboAgeDa.Text.Length == 0)
{
AgeDaValue = 0;
}
else
{
AgeDaValue = Convert.ToInt32(cboAgeDa.Text);
}
DateTime TemDate = dtpRegDate.Value;
TemDate = TemDate.AddYears(-AgeYrValue);
TemDate = TemDate.AddMonths(-AgeMoValue);
TemDate = TemDate.AddDays(-AgeDaValue);
dtpBirthDate.Value = TemDate;
-------cboAgeDa_SelectedIndexChanged
if (cboAgeYr.Text.Length == 0)
{
AgeYrValue = 0;
}
else
{
AgeYrValue = Convert.ToInt32(cboAgeYr.Text);
}
if (cboAgeMo.Text.Length == 0)
{
AgeMoValue = 0;
}
else
{
AgeMoValue = Convert.ToInt32(cboAgeMo.Text);
}
if (cboAgeDa.Text.Length == 0)
{
AgeDaValue = 0;
}
else
{
AgeDaValue = Convert.ToInt32(cboAgeDa.Text);
}
DateTime TemDate = dtpRegDate.Value;
TemDate = TemDate.AddYears(-AgeYrValue);
TemDate = TemDate.AddMonths(-AgeMoValue);
TemDate = TemDate.AddDays(-AgeDaValue);
dtpBirthDate.Value = TemDate;
No comments:
Post a Comment