Possible Duplicate:
Calculating age from birthday
How do you calculate age in years, taking input from TextBox in the format dd/MM/yyyy
?
e.g.
input: txtDOB.Text 20/02/1989 (String format)
output: txtAge.Text 23
Possible Duplicate:
Calculating age from birthday
How do you calculate age in years, taking input from TextBox in the format dd/MM/yyyy
?
e.g.
input: txtDOB.Text 20/02/1989 (String format)
output: txtAge.Text 23
You can use the Substract
method of DateTime
(link) and then use the Days
property to determine the actual age:
DateTime now = DateTime.Now;
DateTime givenDate = DateTime.Parse(input);
int days = now.Subtract(givenDate).Days
int age = Math.Floor(days / 365.24219)
As already noted in a comment, the correct answer is here: Calculate age in C#
You just need to get the birthday as a DateTime:
DateTime bday = DateTime.ParseExact("20/02/1989", "dd/MM/yyyy", CultureInfo.InvariantCulture);
TimeSpan TS = DateTime.Now - new DateTime(1989, 02, 20);
double Years = TS.TotalDays / 365.25; // 365 1/4 days per year
The following will work once you have parsed the birth date into a DateTime:
static int AgeInYears(DateTime birthday, DateTime today)
{
return ((today.Year - birthday.Year) * 372 + (today.Month - birthday.Month) * 31 + (today.Day - birthday.Day)) / 372;
}
Parse the date like so:
DateTime dob = DateTime.ParseExact("20/02/1989", "dd/MM/yyyy", CultureInfo.InvariantCulture);
And a sample program:
using System;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
DateTime dob = new DateTime(2010, 12, 30);
DateTime today = DateTime.Now;
int age = AgeInYears(dob, today);
Console.WriteLine(age); // Prints "1"
}
static int AgeInYears(DateTime birthday, DateTime today)
{
return ((today.Year - birthday.Year) * 372 + (today.Month - birthday.Month) * 31 + (today.Day - birthday.Day)) / 372;
}
}
}
This answer isn't the most efficient as it uses a loop, but it doesn't rely on using 365.25 magic numbers either.
A function to return the whole number of years from a datetime
to today:
public static int CalcYears(DateTime fromDate)
{
int years = 0;
DateTime toDate = DateTime.Now;
while (toDate.AddYears(-1) >= fromDate)
{
years++;
toDate = toDate.AddYears(-1);
}
return years;
}
Usage:
int age = CalcYears(DateTime.ParseExact(txtDateOfBirth.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture));
var date = DateTime.ParseExact("20/02/1989", "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
var age = (DateTime.Today.Year - date.Year);
Console.WriteLine(age);
Try this
string[] AgeVal=textbox.text.split('/');
string Year=AgeVal[2].tostring();
string CurrentYear= DateTime.Now.Date.Year.ToString();
int Age=Convert.ToInt16((Current))-Convert.ToInt16((Year));
Subtract the two values and get your age.