Тема здесь такая - решать определенные задачи минимальным объемом кода. Пример - подсчет количества дней в месяце. Скажем, в BOOST library это решается так: Код (Text): unsigned short gregorian_calendar_base<ymd_type_,date_int_type_>::end_of_month_day(year_type year, month_type month) { switch (month) { case 2: if (is_leap_year(year)) { return 29; } else { return 28; }; case 4: case 6: case 9: case 11: return 30; default: return 31; }; } Код (Text): bool gregorian_calendar_base<ymd_type_,date_int_type_>::is_leap_year(year_type year) { //divisible by 4, not if divisible by 100, but true if divisible by 400 return (!(year % 4)) && ((year % 100) || (!(year % 400))); } У меня это делается так: Код (Text): d=m-2?30+m%2^m>7:28+(!(y%4)&&y%25||!(y%16)); http://sha-lun.livejournal.com/2200.html