age function

dynamic age(
  1. String? birthdate
)

The birthdate may be in 'YYMMDD' format. ie) 001122 Or may be in 'YYYYMMDD' format. ie) 19770707

Implementation

age(String? birthdate) {
  if (birthdate == null || birthdate == '') return '0';
  if (birthdate.length == 8) {
    birthdate = birthdate.substring(2);
  }
  if (birthdate.length != 6) return '0';
  final _yy = int.parse(birthdate.substring(0, 2));
  final _mm = int.parse(birthdate.substring(2, 4));
  final _dd = int.parse(birthdate.substring(4, 6));

  // Adjust year when two digit like '73' is set to birthday.
  DateTime birthday = DateTime(_yy < 20 ? 2000 + _yy : 1900 + _yy, _mm, _dd);

  DateTime today = DateTime.now();

  int age = today.year - birthday.year;
  // 한국 나이로 +1 을 해 준다.
  return (age + 1).toString();
}