parseMrzDate function
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;
}
}