计算年龄的程序
给定当前日期和出生日期,找到当前年龄。
例子:
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
在计算两个日期的差异时,我们只需要跟踪两个条件即可。
- 如果当前日期小于出生日期,则该月不计算在内,为了减去日期,我们将当前日期加上月份天数,以获得日期的差值。
- 如果当前月份小于出生月份,则不计入当年,因为这一年还没有完成,为了获得月份的差异,我们通过在当前月份加上 12 来减去。
- 最后我们只需要减去天、月和年,就可以得到两个条件处理后的差值。
以下是上述方法的实现:
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
输出:
Present Age
Years: 7 Months: 11 Days: 22