1. JavaScript / Говнокод #3400

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    function countInt(int32)
    {
    	var n = int32;
    	if (n == 0) n = 1;
    	n = Math.abs(n);
    	var len = 0;
    	while (n > 0)
    	{
        	len++;
        	n = n / 10;
    		n = parseInt(n); 
    	}
    	return len;
    }
    function zeroAdder(int32)
    {
    	var str = '';
    	if (countInt(int32) == 1) str = '0';
    	str = str + int32;
    	return str;	
    }
    function pasteDT()
    {
    	d = new Date();
    	$('#element_4_1').attr('value',zeroAdder(d.getDate()));
    	$('#element_4_2').attr('value',zeroAdder(d.getMonth()+1));
    	$('#element_4_3').attr('value',zeroAdder(d.getFullYear()));
    	$('#element_5_1').attr('value',zeroAdder(d.getHours()));
    	$('#element_5_2').attr('value',zeroAdder(d.getMinutes()));
    	
    }

    Короче код для заполнения полей формы датой и временем.
    Функция countInt - исчисляет количество цифр в целом числе, даже в отрицательном.
    Функция zeroAdder - добавляет 0, если допустим первое число (1). Преобразовывает его в строку '01'.
    Как вы увидели, я использую jQuery, хотя Prototype как-то удобнее.

    Запостил: increazon, 05 Июня 2010

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

    • Зачем на ночь-то свои творения выкладывать?
      Ответить
    • вот хороший программист отличается от нехорошего тем, что у него нет в коде однообразного, унылого говна и одинаковых строчек типа:

      $('#element_<DIGIT>_<DIGIT>').attr('valu e',zeroAdder
      Ответить
    • поздравляю.
      надеюсь вы уже переписали, что бы countInt брал число как стринг и его длину, а zeroAdder - тернарным оператором )

      кстати, jQuery на порядок удобнее Prototype и короче - мне приходится работать периодически и с тем и тем, и иногда конвертировать. Не поверите, насколько скрипт худеет при использовании jQuery
      Ответить
      • конечно нет. смысл и был в том чтобы искать без преобразования в строку.
        Ответить
        • это конкурсный код или все же рабочий? в конкурсном, я понимаю, требование.
          а в рабочем коде... слили с строкой, взяли кол-во цифр, проверили на первый минус - для отрицательного, и забыли - вернули только кол-во цифр. Быстрее, чем делить на десять в цикле же.
          где смысл, обьясните мне тупому?
          Ответить
          • показать все, что скрытосмысла в моем желании. это рабочий код для моей админ-панели моей CMS. Мне нравится быть программистом - "Что хочу то и ворочу". Мне процессорного времени не жалко для JavaScript - ведб интернет медленнее.
            Ответить
            • >>Мне процессорного времени не жалко для JavaScript - ведб интернет медленнее.

              ыыыыыыыы)
              а у клиента пусть браузер висит -- ага.
              Вы часом не PHP-программист?
              Ответить
              • Именно, я все в одном: Дизайнер, верстальник, программист(php,Javascript;MySql), контент-наполнитель, и SEO оптимизатор! Это для админской части сайта, ничего не висит.
                Ответить
                • >ничего не висит
                  писюн то висит
                  Ответить
                • потому что клиенты дохнут не долетая до серва? )))
                  а вообще когда один за все, не делаешь хорошо... Как минимум устаешь и "глаз замыливается", как максимум нельзя все делать одинаково отлично.

                  вот я, попробовал сделать диз, и что? да, добился что выглядит ровно и строго в основных браузерах. Но сам диз аскетичный донельзя
                  Ответить
                • как я угодал-то!)

                  все-таки PHP программистов можно угадать по чему-то неуловимому....
                  Ответить
                  • но никак не по тому факту, что они программят на пхп? )
                    Ответить
    • Вот всегда удивляло, что в js нет искаропки (в стандарте) таких нужных вещей, как sprintf и strptime
      Ответить
      • меня тоже. Тупят разработчики. Потом многие удмвляются чеж же Делфи такой хорош. А хорош он тем что все включено.
        Ответить
    • Технически, да - говно, но невообразимо унылое.

      PS: в военное время значение синуса месяц бывает отрицательным?
      Ответить
      • и если он будет-таки отрицательным, то из -1 получится 0-1
        Ответить
        • Нет не получится. Это для чего
          n = Math.abs(n);
          Ответить
          • Ну дак в том и дело. В count приходит -1 он работает с ним как с 1 и выдает 1. А zeroadder добавляет к тому же числу n которое все еще -1 0. Получается 0-1.

            Или я туплю?)
            Ответить
            • >>> zeroAdder(-1)
              "0-1"

              Увы, ты прав, но.... Исправлю сейчас. Кроме того это баг zeroAdder, который не планируется использовать нигде, кроме как для даты (ну зачем еще добавлять ноль где-то?). По-этому ?? Это багофича, не баг.
              Ответить
      • А я эту функцию может еще где буду использовать! Написана с минусом для будущего.
        Ответить
        • не будешь, with(Math)return ceil(log(abs(666))/LN10), школьный курс алгебры, какбе

          >Мне нравится быть программистом
          т.е. сменить профессию не предлагать?
          Ответить
          • показать все, что скрытологарифм долго вычисляется. на какую профессию предлагаешь сменить? (водительских прав нет!).
            Ответить
            • а оптимизированная феерическая хуйня вида n = n / 10; n = parseInt(n); в цикле выполняется молниеносно, ага.

              >Мне процессорного времени не жалко
              >логарифм долго вычисляется.
              вы определитесь, а то бесит (ц)

              копать можешь?
              Ответить
              • Умею могилы копать, собственно и копаю каждый день ... вконтакте))
                Ответить
                • О, уголок Дурова... я знал! Нет, могилы копать надо ровно, не возьмём...
                  Ответить
                  • Так вот кто пишет контакт... Я всегда это подозревал)
                    Ответить
                    • меня всё чаще посещает мысль слепить site-specific browser для вконтактика, чтобы тамошнее содержимое на просторы моих интернетов не выплескивалось :-(
                      Ответить
                  • Ты не узнаешь в какую тебя закопают, ровную или кривую. Какая разница?
                    Ответить
                    • Хм, даже и не знаю, стоит ли профориентацию продолжать после этого. Ты каждой репликой оставляешь всё меньше и меньше выбора. Фактически, остался только таджик сезонный.
                      Ответить
          • Сюрприз: with(Math)return ceil(log(abs(1))/LN10)
            Ответить
    • function zeroAdder(int32)
      {
      	if (int32 < 10)
      		return '0' + int32;
      	return int32;	
      }


      Так не прокатит?
      Ответить
      • Прокатит. Что-то оно совсем не работает. Загрузка jQuery стоит выше скрипта, а функцию $() не видит.
        Ответить
        • показать все, что скрытоСпустя 2 часа нашел проблему.
          $(document).ready(pasteDT()); - pasteDT() вызывается тут же где и скрипт.
          $(document).ready(pasteDT); - pasteDT() вызывается когда DOM загружен.
          И зачем они так сделали?
          Ответить
          • ВОТ ВЕДЬ СУКИ!!!1
            Ответить
          • а ты и правда тупой...
            Ответить
          • ага, трудно не заметить разницу между вызовом функции и ссылкой на нее
            Ответить
            • Мне трудно. Должно работать правильно в обеих вариантах.
              Ответить
              • не позорился бы, дизайнер, верстальник, программист(php,Javascript;My Sql), контент-наполнитель, и SEO оптимизатор, таких фейлмэнов здесь не уважают...
                Ответить
              • а не будет. в одном случае вызываем сразу функцию и передает ее результат (трудно ожидать, что это то, что ожидалось), во втором - даем ссылку на функцию, которую вызовем потом.
                отдыхать таки надо и не нужно льстить себе, а все больше не доверять себе
                Ответить
                • Вы так трогательно учите дебила основам программирования, что мне кажется будто Вы -- школьный учитель
                  Ответить
                  • упаси люцифер

                    просто общаться с клиентами приходится. ей богу, как с детьми
                    Ответить
              • > в обеих вариантах

                facepalm.vb
                Ответить
      • кстати, zeroAdder это нуль-гадюка
        Ответить
        • рекурсивный питон, словом ("гадюка" сразу напомнило классическую Змейку)
          Ответить
          • напиши игру питон на питоне.
            Ответить
            • http://tinyurl.com/29y62xg
              Ответить
            • не хочу. писал уже на всем, кроме питона
              Ответить
              • неужели и на Self писал? олдскул =)
                Ответить
                • ну не совсем на всем ) из всех языков, которые изучил.

                  вы бы мне еще брейнфак предложили ))
                  Ответить
                  • Вы не писали на БрейнФаке? Мда...
                    Ответить
                    • а вы писали? сочувствую....
                      Ответить
                      • чему сочувствовать? хороший язык, чтоб размять мозг и пальцы. ))
                        ты только в обморок не падай, но я бывало машинки тьюринга кодил и ниче - выжил.
                        можешь еще unlambda потыкать
                        Ответить
                  • >из всех языков, которые изучил.
                    Очень туманная формулировка... Позвольте, дайте угадаю, вы не программист?
                    Ответить
                    • начал в 10 лет со Спекки - бейсик, ассм. Потом еще всякие бейсики, на писи - бейсики, паскакали... совсем немного С\С++, даж питон попробовал... и еще дотнет - Ж шарп и С шарп.

                      потом сразу веб: перл, пхп, ява и яваскрипт (ну и натурально хтмл, хмл и скул). Теперь вот на этой основе учим строящиеся технологии... Думаю пока этого хватает....
                      Ответить
              • O'Haskell?
                Ответить
    • Если элементы расположить рядом, то можно использовать next().
      Ответить

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