Friday, December 7, 2012

How to calculate age in Years,Months and Days crystal report form date of birth



Here DOB is Date of Birth.

Returns Year = DateDiff('yyyy',{DOB},CurrentDate())

Returns Months = DateDiff('m',{DOB},CurrentDate()) - (DateDiff('yyyy',{DOB},CurrentDate()) *12)

Returns Days =
DateDiff('d',{DOB},CurrentDate()) - ( (DateDiff('m',{DOB},CurrentDate()) / 12) * 365.25  )

2 comments:

  1. ToText(DateDiff('d',DATE({EMP_SALARY.DATE_APPOINTMENT}),CurrentDate()) - ( (DateDiff('m',DATE({EMP_SALARY.DATE_APPOINTMENT}),CurrentDate()) / 12) * 365.25 ),0)+' Days '+
    ToText(
    ((DateDiff('yyyy',CurrentDate(),DATE({EMP_SALARY.DATE_APPOINTMENT})) *12) -12)
    -
    DateDiff('m',CurrentDate(),DATE({EMP_SALARY.DATE_APPOINTMENT}))
    ,0)+' Months '
    +
    ToText(DateDiff('yyyy',DATE({EMP_SALARY.DATE_APPOINTMENT}),CurrentDate),0)+' Years'
    this is improved version

    ReplyDelete
  2. The following is working perfectly OK in Crystal report
    If (Not(isNull({DataTable2.dbirth}))) Then
    ToText(int(DateDiff('d',DATE({DataTable2.dbirth}),CurrentDate())/365.25),0)+' Years '+
    ToText(int(remainder(DateDiff('d',DATE({DataTable2.dbirth}),CurrentDate()),365.25)/30),0)+' Months '+
    If day(CurrentDate()) < Day({DataTable2.dbirth}) Then
    ToText(day(dateserial(year({DataTable2.dbirth}), Month({DataTable2.dbirth})+1,1-1)) - Day({DataTable2.dbirth}) + Day(CurrentDate()),0) + ' days'
    Else
    ToText(day(CurrentDate()) - day({DataTable2.dbirth}),0) + ' days'

    ReplyDelete