• Авторизация


Программерам 11-03-2008 22:53 к комментариям - к полной версии - понравилось!


Сегодня во френдленте наткнулся на пост уважаемого
info
binaryanimal
, предлагающий использовать выражение (m-4)*(m-6)*(m-9)*(m-11)?m-2?31:y%4?28:2 9:30 для вычисления количества дней в месяце m в зависимости от года y (в пределах от 1901 до 2099 гг). Мне это выражение не очень понравилось тем, чем переменная m встречалась слишком часто, да и тернарных операторов условия многовато, в связи с чем я поднапрягся и вывел его в виде 31-((m+5)%13%2?(!!(m==2)*(1+!!(y%4))+1):0) . Вопрос к уважаемым френдам, сможет ли кто-нить укоротить это выражение не увеличивая количество вхождений переменных m и y? Чур, использовать только с-like синтаксис.

Сообщение добавлено через MovableType API

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Программерам | stanislav_mikov - Дневник stanislav_mikov | Лента друзей stanislav_mikov / Полная версия Добавить в друзья Страницы: раньше»