2012-06-26 6 views
1

Я пытаюсь закодировать простой декодер VIN (ISO 3779): производитель и модельный год. Тем не менее, у меня возникают проблемы с декодированием модельного года. По Wikipedia:VIN Декодирование: Модельный год

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------- 
123456789

Производитель: SEAT, модель Год выпуска: 1982 (Некоторые онлайн VIN декодеры дают мне 1982, некоторые другие дают мне 2012 год)

Как я могу изменить свой декодер, чтобы получить это право, за исключением неприятного if (Manufacturer == "SEAT") Year += 30; взлома?

ответ

0

Начитавшись позиции 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 

Сказав, что ваш автомобиль не кажется, следуя правилам. Исключительные случаи требуют исключений для кодирования, которые не являются хаками. Сожалею.

+0

Знаете ли вы, есть ли таблица или что-то в этом роде, в которой перечислены все эти ... исключения? –

+0

Прошу прощения за то, что я этого не сделаю - и не нашел. – marklark