计算年龄的程序

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

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

在计算两个日期的差异时,我们只需要跟踪两种情况即可。

  • 如果当前日期小于出生日期,则不计算该月,对于减去日期,我们将当前日期加上月天数,以获得日期的差异。
  • 如果当前月份小于出生月份,则不考虑当前年份,因为今年尚未完成,为了获得月份差,我们在当前月份加上12。
  • 最后,我们只需要减去天数、月份和年份,就可以得到这两个条件处理后的差值。

以下是上述方法的实施情况:

C++

// c program for age calculator
#include <stdio.h>
#include <stdlib.h>
// 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 AgeYears: %d  Months: %d  Days:"
" %d" , 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

<?php
// PHP program for
// age calculator
// function to calculate
// current age
function findAge(int $current_date , int $current_month ,
int $current_year , int $birth_date ,
int $birth_month , int $birth_year )
{
// days of every month
$month = array (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
$calculated_date = $current_date -
$birth_date ;
$calculated_month = $current_month -
$birth_month ;
$calculated_year = $current_year -
$birth_year ;
// print the present age
echo "Present AgeYears:" , $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

<script>
// Javascript program for age calculator
// function to calculate current age
function findAge(current_date, current_month, current_year, birth_date,
birth_month, birth_year)
{
// days of every month
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
var calculated_date = current_date - birth_date;
var calculated_month = current_month - birth_month;
var calculated_year = current_year - birth_year;
// print the present age
document.write( "Present Age<br>Years: " +(calculated_year)+ " " );
document.write( "Months: " +calculated_month+ " " );
document.write( "Days: " +calculated_date+ " " );
}
// driver code to check the above function
// current dd// mm/yyyy
var current_date = 7;
var current_month = 12;
var current_year = 2017;
// birth dd// mm// yyyy
var birth_date = 16;
var birth_month = 12;
var birth_year = 2009;
// function call to print age
findAge(current_date, current_month, current_year,
birth_date, birth_month, birth_year);
</script>


输出:

Present AgeYears: 7  Months: 11  Days: 22

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享