Skip to content

Instantly share code, notes, and snippets.

@cbrevik
Created June 29, 2020 19:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cbrevik/c27fe7b1ce9c7f554b6f57bf16afe9e9 to your computer and use it in GitHub Desktop.
Save cbrevik/c27fe7b1ce9c7f554b6f57bf16afe9e9 to your computer and use it in GitHub Desktop.
int day = int.Parse(ssn.Substring(0, 2));
int month = int.Parse(ssn.Substring(2, 2));
int year = int.Parse(ssn.Substring(4, 2));
int ruleNumber = int.Parse(ssn.Substring(6, 3));
int birthYear = 0;
// Rule 1. 500–749: 1854–1899
if (year >= 54 && ruleNumber >= 500 && ruleNumber <= 749)
{
birthYear = 1800 + year;
}
// Rule 2. 000–499: 1900–1999
else if (ruleNumber < 500)
{
birthYear = 1900 + year;
}
// Rule 3. 900–999: 1940–1999
else if (ruleNumber >= 900 && year >= 40)
{
birthYear = 1900 + year;
}
// Rule 4. 500–999: 2000–2039
else if (year <= 39 && ruleNumber >= 500)
{
birthYear = 2000 + year;
}
var birthDate = new DateTime(birthYear, month, day);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment