MCPcopy Create free account
hub / github.com/ZsBT/mrz-java / parseDate

Method parseDate

src/main/java/com/innovatrics/mrz/MrzParser.java:176–201  ·  view source on GitHub ↗

Parses MRZ date. @param range the range containing the date, in the YYMMDD format. The range must be 6 characters long. @return parsed date @throws IllegalArgumentException if the range is not 6 characters long.

(MrzRange range)

Source from the content-addressed store, hash-verified

174 * @throws IllegalArgumentException if the range is not 6 characters long.
175 */
176 public MrzDate parseDate(MrzRange range) {
177 if (range.length() != 6) {
178 throw new IllegalArgumentException("Parameter range: invalid value " + range + ": must be 6 characters long");
179 }
180 MrzRange r = null;
181 try {
182 r = new MrzRange(range.column, range.column + 2, range.row);
183 final int year = Integer.parseInt(rawValue(r));
184 if (year < 0 || year > 99) {
185 throw new MrzParseException("Failed to parse MRZ date: invalid year value " + year + ": must be 0..99", mrz, r, format);
186 }
187 r = new MrzRange(range.column + 2, range.column + 4, range.row);
188 final int month = Integer.parseInt(rawValue(r));
189 if (month < 1 || month > 12) {
190 throw new MrzParseException("Failed to parse MRZ date: invalid month value " + month + ": must be 1..12", mrz, r, format);
191 }
192 r = new MrzRange(range.column + 4, range.column + 6, range.row);
193 final int day = Integer.parseInt(rawValue(r));
194 if (day < 1 || day > 31) {
195 throw new MrzParseException("Failed to parse MRZ date: invalid day value " + day + ": must be 1..31", mrz, r, format);
196 }
197 return new MrzDate(year, month, day);
198 } catch (NumberFormatException ex) {
199 throw new MrzParseException("Failed to parse MRZ date " + rawValue(range) + ": " + ex, mrz, r, format);
200 }
201 }
202
203 /**
204 * Parses the "sex" value from given column/row.

Callers 8

fromMrzMethod · 0.95
fromMrzMethod · 0.95
fromMrzMethod · 0.95
fromMrzMethod · 0.95
fromMrzMethod · 0.95
fromMrzMethod · 0.95
fromMrzMethod · 0.95
testDateParsingMethod · 0.80

Calls 2

rawValueMethod · 0.95
lengthMethod · 0.80

Tested by 1

testDateParsingMethod · 0.64