ЙажаСценарий / Говнокод #3400 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 increazon, (Updated )

Комментарии (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
      Ответить
        • Ну дак в том и дело. В 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 для вконтактика, чтобы тамошнее содержимое на просторы моих интернетов не выплескивалось 🙁
                    Ответить
                • Ты не узнаешь в какую тебя закопают, ровную или кривую. Какая разница?
                  Ответить
                  • Хм, даже и не знаю, стоит ли профориентацию продолжать после этого. Ты каждой репликой оставляешь всё меньше и меньше выбора. Фактически, остался только таджик сезонный.
                    Ответить
  • function zeroAdder(int32)
    {
    	if (int32 < 10)
    		return '0' + int32;
    	return int32;	
    }


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

                  просто общаться с клиентами приходится. ей богу, как с детьми
                  Ответить
  • Если элементы расположить рядом, то можно использовать next().
    Ответить

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

Помни, guest, за тобой могут следить!

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


    8