Saturday, August 2, 2008

Calculate Age from given Birthdate

As there was a requirement in my project to calculate age(Age in Year,Age in Month,Age in days) of an entity from his/her birthdate to the present date.

I have created one function in javascript which will calculate age(Age in Year,Age in Month,Age in days) from given birthdate.

The function is as given below.


1function CalculateAgeFromBirthdate(birthdate)
2
{
3

4 var birthdate;
5 birthdate = new
Date(birthdate);
6

7 var bYear = birthdate.getFullYear();//Year of birth

8 var bMonth = birthdate.getMonth() + 1; //Month of Birth

9 var bDay = birthdate.getDate(); //Day of Birth

10

11 var date = new Date(); // get current date

12 var cYear = date.getFullYear(); //Get current year

13 var cMonth = date.getMonth() + 1;//Get current month

14 var cDay = date.getDate();//Get Current Date
15

16 var g31Day=new Array(1,3,5,7,8,10,12);//Array of the months of 31 days

17 var g30Day=new Array(2,4,6,9,11); //Array of the months of 30 days

18 var gMonth=12
;
19 var
gDay;
20

21 var getCurentMont=cMonth//get current month

22 var getCurrentYear=cYear//get current year
23

24 for(var i=0;i < g31Day.length;i++
)
25
{
26

27

28 if (g31Day[i]==
getCurentMont)
29
{
30 gDay=31
;
31 break
;
32 }

33

34 }

35 for(var i=0;i < g30Day.length; i++
)
36 {

37

38 if(g30Day[i] ==
getCurentMont)
39
{
40 if(getCuurentMont=2
)
41
{
42 //For leap year

43 if(getCurrentYear % 4 == 0 (getCurrentYear % 100 != 0 && getCurrentYear % 4 == 0
))
44
{
45 gDay=29
;
46 break
;
47 }

48 else

49
{
50 gDay=28
;
51 break
;
52 }

53

54 }

55 else

56
{
57 gDay=30
;
58 break
;
59 }

60 }

61 }

62

63 var
years;
64 var
Day;
65 var
Month;
66

67 years = (cYear) -
parseInt(bYear);
68

69 Day = parseInt(cDay)-
parseInt(bDay);
70

71 Month = (cMonth)-
parseInt(bMonth);
72

73

74 if( Month < 0
)
75

76
{
77

78 gMonth=parseInt(gMonth)+
parseInt(Month) ;
79

80 Month=
gMonth;
81 years--
;
82 flag=true
;
83

84 }

85 if( Day < 0
)
86

87
{
88

89 gDay=parseInt(gDay)+
parseInt(Day) ;
90

91 Day=
gDay;
92

93 }

94

95 alert("I am of "+years+" years, "+Month+" month and "+Day +" days"
);
96

97 }


By passing Birthdate as Parameter it will calculate the age.

No comments: