Related Articles

# Program to calculate age

• Difficulty Level : Easy
• Last Updated : 22 Mar, 2021

Given current date and birth date, find the present age.
Examples:

```Input : Birth date = 07/09/1996
Present date = 07/12/2017
Output : Present Age = Years: 21  Months: 3  Days: 0
t Age = Years: 7  Months: 11  Days: 21```

While calculating the difference in two dates we need to just keep track of two conditions that will do.

• If the current date is less than that of the birth date, then that month is not counted, and for subtracting dates we add number of month days to the current date so as to get the difference in the dates.
• If the current month is less than the birth month, then the current year is not taken into count as this year has not been completed and for getting the difference of months, we subtract by adding 12 to the current month.
• At the end we just need to subtract the days, months and years to get the difference after the two conditions are dealt with.

Below is the implementation of the above approach :

## C++

 `// c program for age calculator``#include ``#include ` `// function to calculate current age``void` `findAge(``int` `current_date, ``int` `current_month,``             ``int` `current_year, ``int` `birth_date,``             ``int` `birth_month, ``int` `birth_year)``{``    ``// days of every month``    ``int` `month[] = { 31, 28, 31, 30, 31, 30, 31,``                          ``31, 30, 31, 30, 31 };` `    ``// if birth date is greater then current birth``    ``// month then do not count this month and add 30``    ``// to the date so as to subtract the date and``    ``// get the remaining days``    ``if` `(birth_date > current_date) {``        ``current_date = current_date + month[birth_month - 1];``        ``current_month = current_month - 1;``    ``}` `    ``// if birth month exceeds current month, then do``    ``// not count this year and add 12 to the month so``    ``// that we can subtract and find out the difference``    ``if` `(birth_month > current_month) {``        ``current_year = current_year - 1;``        ``current_month = current_month + 12;``    ``}` `    ``// calculate date, month, year``    ``int` `calculated_date = current_date - birth_date;``    ``int` `calculated_month = current_month - birth_month;``    ``int` `calculated_year = current_year - birth_year;` `    ``// print the present age``    ``printf``(``"Present Age\nYears: %d  Months: %d  Days:"``           ``" %d\n"``, calculated_year, calculated_month,``                                      ``calculated_date);``}` `// driver code to check the above function``int` `main()``{``    ``// current dd// mm/yyyy``    ``int` `current_date = 7;``    ``int` `current_month = 12;``    ``int` `current_year = 2017;` `    ``// birth dd// mm// yyyy``    ``int` `birth_date = 16;``    ``int` `birth_month = 12;``    ``int` `birth_year = 2009;` `    ``// function call to print age``    ``findAge(current_date, current_month, current_year,``            ``birth_date, birth_month, birth_year);``    ``return` `0;``}`

## Java

 `// Java program for age calculator``import` `java.io.*;` `class` `GFG {``    ``static` `void` `findAge(``int` `current_date, ``int` `current_month,``                    ``int` `current_year, ``int` `birth_date,``                    ``int` `birth_month, ``int` `birth_year)``    ``{``        ``int` `month[] = { ``31``, ``28``, ``31``, ``30``, ``31``, ``30``, ``31``,``                             ``31``, ``30``, ``31``, ``30``, ``31` `};` `        ``// if birth date is greater then current``        ``// birth_month, then donot count this month``        ``// and add 30 to the date so as to subtract``        ``// the date and get the remaining days``        ``if` `(birth_date > current_date) {``            ``current_month = current_month - ``1``;``            ``current_date = current_date + month[birth_month - ``1``];``        ``}` `        ``// if birth month exceeds current month,``        ``// then do not count this year and add``        ``// 12 to the month so that we can subtract``        ``// and find out the difference``        ``if` `(birth_month > current_month) {``            ``current_year = current_year - ``1``;``            ``current_month = current_month + ``12``;``        ``}` `        ``// calculate date, month, year``        ``int` `calculated_date = current_date - birth_date;``        ``int` `calculated_month = current_month - birth_month;``        ``int` `calculated_year = current_year - birth_year;` `        ``// print the present age``        ``System.out.println(``"Present Age"``);``        ``System.out.println(``"Years: "` `+ calculated_year +``              ``" Months: "` `+ calculated_month + ``" Days: "` `+``              ``calculated_date);``    ``}``    ``public` `static` `void` `main(String[] args)``    ``{``        ``// present date``        ``int` `current_date = ``7``;``        ``int` `current_month = ``12``;``        ``int` `current_year = ``2017``;` `        ``// birth dd// mm// yyyy``        ``int` `birth_date = ``16``;``        ``int` `birth_month = ``12``;``        ``int` `birth_year = ``2009``;` `        ``// function call to print age``        ``findAge(current_date, current_month, current_year,``              ``birth_date, birth_month, birth_year);``    ``}``}`

## Python

 `# Python program to calculate range` `def` `findAge(current_date, current_month, current_year,``            ``birth_date, birth_month, birth_year):` `    ``# if birth date is greater then current birth_month``    ``# then donot count this month and add 30 to the date so``    ``# as to subtract the date and get the remaining days``    ` `    ``month ``=``[``31``, ``28``, ``31``, ``30``, ``31``, ``30``, ``31``, ``31``, ``30``, ``31``, ``30``, ``31``]``    ``if` `(birth_date > current_date):``        ``current_month ``=` `current_month ``-` `1``        ``current_date ``=` `current_date ``+` `month[birth_month``-``1``]``        ` `        ` `    ``# if birth month exceeds current month, then``    ``# donot count this year and add 12 to the``    ``# month so that we can subtract and find out``    ``# the difference``    ``if` `(birth_month > current_month):        ``        ``current_year ``=` `current_year ``-` `1``;``        ``current_month ``=` `current_month ``+` `12``;``        ` `    ``# calculate date, month, year``    ``calculated_date ``=` `current_date ``-` `birth_date;``    ``calculated_month ``=` `current_month ``-` `birth_month;``    ``calculated_year ``=` `current_year ``-` `birth_year;``    ` `    ``# print present age``    ``print``"Present Age"``    ``print``(``"Years:"``, calculated_year, ``"Months:"``, ``         ``calculated_month, ``"Days:"``, calculated_date)``    ` `# driver code``current_date ``=` `7``current_month ``=` `12``current_year ``=` `2017``        ` `# birth dd//mm//yyyy``birth_date ``=` `16``birth_month ``=` `12``birth_year ``=` `2009` `findAge(current_date, current_month, current_year,``        ``birth_date, birth_month, birth_year)`

## C#

 `// C# program for age calculator``using` `System;` `class` `GFG {` `    ``static` `void` `findAge(``int` `current_date,``                       ``int` `current_month,``                        ``int` `current_year, ``                          ``int` `birth_date,``                         ``int` `birth_month,``                          ``int` `birth_year)``    ``{``        ``int` `[]month = { 31, 28, 31, 30, 31, 30,``                      ``31, 31, 30, 31, 30, 31 };` `        ``// if birth date is greater then``        ``// current birth_month, then donot``        ``// count this month and add 30 to the``        ``// date so as to subtract the date and``        ``// get the remaining days``        ``if` `(birth_date > current_date)``        ``{``            ``current_month = current_month - 1;``            ` `            ``current_date = current_date``                      ``+ month[birth_month - 1];``        ``}` `        ``// if birth month exceeds current month,``        ``// then do not count this year and add``        ``// 12 to the month so that we can``        ``// subtract and find out the difference``        ``if` `(birth_month > current_month)``        ``{``            ``current_year = current_year - 1;``            ``current_month = current_month + 12;``        ``}` `        ``// calculate date, month, year``        ``int` `calculated_date = current_date``                                 ``- birth_date;``                                 ` `        ``int` `calculated_month = current_month``                                ``- birth_month;``                                ` `        ``int` `calculated_year = current_year``                                 ``- birth_year;` `        ``// print the present age``        ``Console.WriteLine(``"Present Age"``);``        ``Console.WriteLine(``"Years: "``                           ``+ calculated_year +``                ``" Months: "` `+ calculated_month``               ``+ ``" Days: "` `+ calculated_date);``    ``}``    ` `    ``// driver code to check the above function``    ``public` `static` `void` `Main()``    ``{``        ` `        ``// present date``        ``int` `current_date = 7;``        ``int` `current_month = 12;``        ``int` `current_year = 2017;` `        ``// birth dd// mm// yyyy``        ``int` `birth_date = 16;``        ``int` `birth_month = 12;``        ``int` `birth_year = 2009;` `        ``// function call to print age``        ``findAge(current_date, current_month,``                   ``current_year, birth_date,``                   ``birth_month, birth_year);``    ``}``}` `//This code is contributed by vt_m.`

## PHP

 ` ``\$current_date``)``    ``{``        ``\$current_date` `= ``\$current_date` `+``                        ``\$month``[``\$birth_month` `- 1];``        ``\$current_month` `= ``\$current_month` `- 1;``    ``}` `    ``// if birth month exceeds``    ``// current month, then do``    ``// not count this year and``    ``// add 12 to the month so``    ``// that we can subtract and``    ``// find out the difference``    ``if` `(``\$birth_month` `> ``\$current_month``)``    ``{``        ``\$current_year` `= ``\$current_year` `- 1;``        ``\$current_month` `= ``\$current_month` `+ 12;``    ``}` `    ``// calculate date, month, year``    ``\$calculated_date` `= ``\$current_date` `-``                       ``\$birth_date``;``    ``\$calculated_month` `= ``\$current_month` `-``                        ``\$birth_month``;``    ``\$calculated_year` `= ``\$current_year` `-``                       ``\$birth_year``;` `    ``// print the present age``    ``echo` `"Present Age\nYears:"``,``\$calculated_year``,``         ``" "` `, ``"Months:"``, ``\$calculated_month``, ``" "``,``                       ``"Days:"``, ``\$calculated_date``;``                                ` `}` `    ``// Driver Code``    ``// current dd// mm/yyyy``    ``\$current_date` `= 7;``    ``\$current_month` `= 12;``    ``\$current_year` `= 2017;` `    ``// birth dd// mm// yyyy``    ``\$birth_date` `= 16;``    ``\$birth_month` `= 12;``    ``\$birth_year` `= 2009;` `    ``// function call to print age``    ``findAge(``\$current_date``, ``\$current_month``,``            ``\$current_year``, ``\$birth_date``,``            ``\$birth_month``, ``\$birth_year``);``            ` `// This code is contributed by anuj_67.``?>`

## Javascript

 ``

Output:

```Present Age
Years: 7  Months: 11  Days: 22```

Attention reader! Don’t stop learning now. Join the First-Step-to-DSA Course for Class 9 to 12 students , specifically designed to introduce data structures and algorithms to the class 9 to 12 students

My Personal Notes arrow_drop_up