VIN декодирование: модельный год
Я пытаюсь кодировать простой VIN (ISO 3779) декодер: производитель и год выпуска. У меня есть некоторые проблемы с декодированием модельного года. Согласно Википедии:
For passenger cars, and for multipurpose passenger vehicles and trucks with a gross vehicle weight rating of 10,000 lb (4,500 kg) or less, if position 7 is numeric, the model year in position 10 of the VIN refers to a year in the range 1980–2009. If position 7 is alphabetic, the model year in position 10 of VIN refers to a year in the range 2010–2039.
VIN моей машины (модельный год 2012) содержит следующую информацию:
VSS---1--C-------
12345678901234567
Производитель: SEAT, Модельный год: 1982 (некоторые онлайн VIN-декодеры дают мне 1982, некоторые другие дают мне 2012)
Как я могу изменить свой декодер, чтобы я понял это правильно, кроме как делать неприятные if (Manufacturer == "SEAT") Year += 30;
взломать?
1 ответ
Прочитав позиции 7 и 10, вот код PHP:
$year = date_1980_2009( $position_10 ); # use your current date function...
if ( preg_match( "/^[A-Z]$/i", $position_7 ) ) $year += 30; # add 30 years if 7 is alphabetic
Сказав это, ваша машина, кажется, не следует правилам. Исключительные случаи требуют кодирования исключений, которые не являются взломами. Сожалею.