📜  计算年龄的程序

📅  最后修改于: 2022-05-13 01:57:58.808000             🧑  作者: Mango

计算年龄的程序

给定当前日期和出生日期,找到当前年龄。
例子:

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