"PHP" / Говнокод #12323 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
$week['monday'] = date("d.m.Y", $week_start);
$week['tuesday'] = date("d.m.Y", $week_start + 1 * 86400);
$week['wednesday'] = date("d.m.Y", $week_start + 2 * 86400);
$week['thursday'] = date("d.m.Y", $week_start + 3 * 86400);
$week['friday'] = date("d.m.Y", $week_start + 4 * 86400);
$week['saturday'] = date("d.m.Y", $week_start + 5 * 86400);
$week['sunday'] = date("d.m.Y", $week_start + 6 * 86400);

Запостил: 1allen 1allen, (Updated )

Комментарии (19) RSS

    • Сколько нуно.
      Но поражают люди, которые никогда не слышали про, скажем +1 day.
      Ответить
    • 0*96400 не хватило для симметрии. И тарасоформатирование тут бы помогло.
      $week['monday']    = date("d.m.Y", $week_start + 0 * 86400);
      $week['tuesday']   = date("d.m.Y", $week_start + 1 * 86400);
      $week['wednesday'] = date("d.m.Y", $week_start + 2 * 86400);
      $week['thursday']  = date("d.m.Y", $week_start + 3 * 86400);
      $week['friday']    = date("d.m.Y", $week_start + 4 * 86400);
      $week['saturday']  = date("d.m.Y", $week_start + 5 * 86400);
      $week['sunday']    = date("d.m.Y", $week_start + 6 * 86400);
      Ответить
      • Меня уже давно волнует вопрос. Как форматтер будет узнавать, что следующую строку нужно выравнивать по текущей? Или текущую - по последней. Потребуется нехилый набор правил, плюс многопроходный форматтер, не?
        Ответить
        • Если тарасоформаттер видит достаточно похожие по критерию Тараса строки, он будет равнять их так, чтобы совпадающие части стояли ровно в столбик...
          Ответить
            • Критерий Тараса: Строки называются похожими друг на друга по критерию Тараса тогда и только тогда, когда Тарас применил бы к ним Тарасоформатирование.
              Ответить
                • > Лол, пахнет сепульками.
                  Ага, тоже вспомнились, когда это писал 😉

                  Тарас это тот, кто применяет Тарасоформатирование к строкам похожим друг на друга по критерию Тараса.
                  Ответить
                  • Тарасоформатирование - термин, обозначающий текстовое преобразование, применяемое Тарасом к строкам, схожим по критерию Тараса.
                    Для полноты.
                    Ответить
            • Увы, невозможно объяснить, что такое Матрица тарасоформатирование... Ты должен увидеть это сам.
              http://uncrustify.sourceforge.net/examples/example.c
              Достаточно положить в makefile что-то вроде ТАРАСOFORMAT: uncrustify --replace -c ~/uncrustify.cfg *.c *.cpp *.h
              Ответить
          • А если в соседних строках разное количество двоеточий, как форматировать?
            Ответить
            • По первому.
              Если в одной : := а в другой := : , то := приоритетнее.
              Также запятые внутри перечислений и в аргументах одинаковых функций.
              Ответить
      • Код с тарасоформаттером:
        $day_names = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday');
        
        $map_length = function($value) { return strlen($value); };
        $maxlength = max(array_map($map_length, $day_names));
        
        for ($code = '', $i = 0; $i < 7; $i++) {
          $code .= sprintf("\$week['%s'] %s = date(\"d.m.Y\", \$week_start + %d * 86400);\n", 
        	$day_names[$i], 
        	str_repeat(' ', $maxlength - strlen($day_names[$i])), 
        	$i
          );
        }
        
        eval($code);
        Ответить
  • Вот так понятнее:
    $day_names = array_flip(array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'));
    
    $func = function($value) use ($week_start) {
    	return date("d.m.Y", $week_start + $value * 86400);
    };
    
    $week = array_map($func, $day_names);
    Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8