calculateAge

/**
 * Calculates the age in years at the given point in time 
 * out of a given birthday (as double)
 * 
 * @param calendar_birthday
 * @param calendar_ageAtThisDate
 * @return
 */
function calculateAge (calendar_birthday, calendar_ageAtThisDate) {
   /* ======================================== */
   // IMPORTS
   importPackage(java.util);
 
   // prepare the data
   var yearOfBirth = calendar_birthday.get(Calendar.YEAR);
   var dayOfBirth = calendar_birthday.get(Calendar.DAY_OF_YEAR);
   var yearOfMeasuring = calendar_ageAtThisDate.get(Calendar.YEAR);
   var dayOfMeasuring = calendar_ageAtThisDate.get(Calendar.DAY_OF_YEAR);
   var maxDaysOfYear = calendar_ageAtThisDate.getActualMaximum(
         Calendar.DAY_OF_YEAR);
 
   // calculate the age
   var age = yearOfMeasuring - yearOfBirth;
   if (dayOfBirth < dayOfMeasuring) {
      /* The patient's birthday of this year way BEFORE the measuring.
	   * => Calculate the year as floating number
	   */
      age += (dayOfMeasuring - dayOfBirth) / maxDaysOfYear;
   } else if (dayOfBirth > dayOfMeasuring) {
      /* The patient's birthday of this year way AFTER the measuring.
	   * => Calculate the year as floating number
	   */
      age--;
      age += (dayOfMeasuring + maxDaysOfYear - dayOfBirth) / maxDaysOfYear;
   }
 
   return age;
   /* ======================================== */
}