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 цифр.
Описание алгоритма расчета контрольной суммы можно посмотреть в википедии.
d237ced8-2b6a-4716-8496-0778f83832dd|3|5.0
Tags: c#, level100
by Ailexey
29. сентября 2009 13:59

Google одобрил мою первую 3D-модель, разместив её в публичном слое Google Earth. Прообразом первого блина модели послужил прямоугольный 2-й корпус АГТУ. Главный недостаток – рисованные текстуры. Очень сложно было сделать фототекстуры. Корпус со всех сторон зарос деревьями. Кроме того, реальные текстуры в оригинальном виде стыдно размещать. Как говорил Хазанов, наши здания покрыл многолетний, частично заляпанный кариес. Без тщательного ретуширования не обойтись. Теперь Вы можете увидеть второй корпус нашего университета в объёме в замечательной программе Google Earth.
Кроме здания университета в Google Earth можно найти пару десятков моих снимков нашего города, размещенных на сервисе Panoramio.
7722a5af-f8d0-4d8c-b6f8-210e55972182|0|.0
Tags:
by Ailexey
13. сентября 2009 12:33

Поздравляю всех коллег с профессиональным праздником! Дождались!
А как же раньше отмечали? День радио (7 мая), по коду специальности (22 апреля и 17 сентября), летом вместе с днем системного администратора (в последнюю пятницу июля). Но теперь, неоднозначность устранена и официальный день назначен. Осталось дело за малым - официально признать праздник во всем мире.
Теперь на очереди профессиональные праздники системных аналитиков и архитекторов, тестировщиков и техподдержки :)
Готовимся к пятнице 13-го в 13 году третьего тысячелетия (13.09.2013). Начинаем встраивать пасхальные яйца! ;-)
43e50e2e-84a9-4730-b184-0d9d7615629a|0|.0
Tags: праздники