parseMrzDate function

DateTime? parseMrzDate(
  1. String yymmdd
)

Implementation

DateTime? parseMrzDate(String yymmdd) {
  if (!RegExp(r'^\d{6}$').hasMatch(yymmdd)) return null;
  try {
    int year = int.parse(yymmdd.substring(0, 2));
    final month = int.parse(yymmdd.substring(2, 4));
    final day = int.parse(yymmdd.substring(4, 6));
    final currentYear = DateTime.now().year;
    final currentCentury = (currentYear ~/ 100) * 100;
    final currentTwoDigitYear = currentYear % 100;
    if (year > currentTwoDigitYear + 10) {
      year += currentCentury - 100;
    } else {
      year += currentCentury;
    }
    return DateTime.utc(year, month, day);
  } catch (e) {
    return null;
  }
}