open System let getAge (d : DateTime) = let d' = DateTime.Now match d' > d with | true -> let months = 12 * (d'.Year - d.Year) + (d'.Month - d.Month) match d'.Day < d.Day with | true -> let days = DateTime.DaysInMonth(d.Year, d.Month) - d.Day + d'.Day let years = (months - 1) / 12 let months' = (months - 1) - years * 12 (years, months', days) | false -> let days = d'.Day - d.Day let years = months / 12 let months' = months - years * 12 (years, months', days) | false -> (0,0,0) // Example let birthDate = DateTime.Parse("2/8/1995") let y, m, d = getAge birthDate printfn "Age: %d years, %d months and %d days." y m d // Output // Age: 15 years, 5 months and 6 days.