# How do I calculate someone's age in C#?

### Question

Given a `DateTime` representing a person's birthday, how do I calculate their age in years?

1
1742
4/21/2018 5:48:14 PM

An easy to understand and simple solution.

``````// Save today's date.
var today = DateTime.Today;
// Calculate the age.
var age = today.Year - birthdate.Year;
// Go back to the year the person was born in case of a leap year
``````

However, this assumes you are looking for the western idea of age and not using East Asian reckoning.

1975
4/23/2019 10:06:49 AM

This is a strange way to do it, but if you format the date to `yyyymmdd` and subtract the date of birth from the current date then drop the last 4 digits you've got the age :)

I don't know C#, but I believe this will work in any language.

``````20080814 - 19800703 = 280111
``````

Drop the last 4 digits = `28`.

C# Code:

``````int now = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
int dob = int.Parse(dateOfBirth.ToString("yyyyMMdd"));
int age = (now - dob) / 10000;
``````

Or alternatively without all the type conversion in the form of an extension method. Error checking omitted:

``````public static Int32 GetAge(this DateTime dateOfBirth)
{
var today = DateTime.Today;

var a = (today.Year * 100 + today.Month) * 100 + today.Day;
var b = (dateOfBirth.Year * 100 + dateOfBirth.Month) * 100 + dateOfBirth.Day;

return (a - b) / 10000;
}
``````