Валидация ИНН

by Ailexey 19. ноября 2009 20:56

Срочно был нужен код на C# для проверки валидности ИНН, т.е. код проверки контрольной суммы ИНН. Быстрый поиск не выявил готовых фрагментов кода. Пришлось сделать велосипед. Делюсь результатами.

static bool ИНН(string code)
{
   var n = code.ToCharArray()
                     .Where(x => char.IsDigit(x))
                     .Select(x =>  x - '0')
                     .ToArray();
   return (n.Length == 10) ? CRC(n, 9) // юл
          : ((n.Length == 12) ? CRC(n, 10) && CRC(n, 11) // фл
          : false); // должно быть 10(юл) или 12(фл) цифр
}

static int[] p = { 3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 };
static bool CRC(int[] code, int count)
{
   int tmp = 0, shift = 11 - count;
   for (int i = 0; i < count; i++)
       tmp += p[shift + i] * code[i];
   return tmp % 11 % 10 == code[count]; // контрольная сумма верна/неверна
}

На вход можно подавать код с разделителями. Учитываются только цифры. Для юридического лица должно быть 10 цифр, для физического лица 12 цифр.

Описание алгоритма расчета контрольной суммы можно посмотреть в википедии.

Tags: ,

Google включил модель 2-го корпуса в 3D-слой Google Earth

by Ailexey 29. сентября 2009 13:59

Google одобрил мою первую 3D-модель, разместив её в публичном слое Google Earth. Прообразом первого блина модели послужил прямоугольный 2-й корпус АГТУ. Главный недостаток – рисованные текстуры. Очень сложно было сделать фототекстуры. Корпус со всех сторон зарос деревьями. Кроме того, реальные текстуры в оригинальном виде стыдно размещать. Как говорил Хазанов, наши здания покрыл многолетний, частично заляпанный кариес. Без тщательного ретуширования не обойтись. Теперь Вы можете увидеть второй корпус нашего университета в объёме в замечательной программе Google Earth.

Кроме здания университета в Google Earth можно найти пару десятков моих снимков нашего города, размещенных на сервисе Panoramio.

Tags:

Программисты, с профессиональным праздником!

by Ailexey 13. сентября 2009 12:33

Поздравляю всех коллег с профессиональным праздником! Дождались!

А как же раньше отмечали? День радио (7 мая), по коду специальности (22 апреля и 17 сентября), летом вместе с днем системного администратора (в последнюю пятницу июля). Но теперь, неоднозначность устранена и официальный день назначен. Осталось дело за малым - официально признать праздник во всем мире.

Теперь на очереди профессиональные праздники системных аналитиков и архитекторов, тестировщиков и техподдержки :)

Готовимся к пятнице 13-го в 13 году третьего тысячелетия (13.09.2013). Начинаем встраивать пасхальные яйца! ;-)

Tags:

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

Автор

программирую с 1987г,
профессионально с 1991г,
преподаю IT c 1997г

MCTS: .Net 2.0 Windows Application