1. Лучший говнокод

    В номинации:
    За время:
  2. C# / Говнокод #8439

    +124

    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
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    public static DateTime Sec2Date( UInt32 time )
    {
    	UInt32[] days_per_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    	int[] days_per_year = { 366, 365, 365, 365 };
    	UInt32 hour = (UInt32)((time / 3600) % 24);
    	UInt32 min = (UInt32)((time / 60) % 60);
    	UInt32 sec = (UInt32)(time % 60);
    	// в 4-х годах 1461 день, значит в 1 годе 1461/4=365.25 дней в среднем в году
    	//UInt32 year = (UInt32)(time / (24f * 3600f * 365.25));
    
    	int time_temp = (int)time;
    	int year_temp = 0;
    	do
    	{
    		time_temp -= 24 * 3600 * days_per_year[year_temp % 4];
    		year_temp++;
    	}
    	while ( time_temp > 0 );
    	int year = year_temp - 1;
    
    	// кол-во_секунд_с_начала_года = общее_кол-во_секунд - кол-во_секунд_до_начала_года_с_0_года
    	UInt32 sec_after_curr_year = time - Date2Sec( (int)year, 1, 1, 0, 0, 0 );
    	// кол-во дней, прошедших с начала года
    	UInt32 day = (UInt32)(sec_after_curr_year / (3600 * 24) + 1);
    	// день недели
    	UInt32 week = day % 7;
    	// в феврале високосного года делаем 29 дней
    	if ( 0 == (year % 4) )
    		days_per_month[1] = 29;
    	// из общего кол-во дней будем вычитать дни месяцев, получим месяц и день в месяце
    	UInt32 month = 0;
    	while ( day > days_per_month[month] ) day -= days_per_month[month++];
    	month++;
    	DateTime date = new DateTime( (int)(year + 2000), (int)month, (int)day, (int)hour, (int)min, (int)sec );
    	return date;
    }
    
    public static UInt32 Date2Sec( int Y, int M, int D, int hh, int mm, int ss )
    {
    	DateTime date = new DateTime( Y + 2000, M, D, hh, mm, ss );
    	return Date2Sec( date );
    }
    
    public static UInt32 Date2Sec( DateTime date )
    {
    	int[] days_per_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    	int[] days_per_year = { 366, 365, 365, 365 };
    
    	UInt32 sec_monthes = 0;
    	for ( int i = 0; i < (date.Month - 1); i++ )
    		sec_monthes += (UInt32)(days_per_month[i] * 24 * 3600);
    	if ( (2 < date.Month) && (0 == (date.Year % 4)) )
    		sec_monthes += 24 * 3600;		// 29 февраля
    	UInt32 sec_days = (UInt32)((date.Day - 1) * 24 * 3600);
    	UInt32 sec_hours = (UInt32)(date.Hour * 3600);
    	UInt32 sec_minutes = (UInt32)(date.Minute * 60);
    	UInt32 sec_years = 0;
    	for ( int i = 0; i < (date.Year - 2000); i++ )
    		sec_years += (UInt32)(days_per_year[i % 4] * 24 * 3600);
    	UInt32 total_sec = (UInt32)(sec_years + sec_monthes + sec_days + sec_hours + sec_minutes + date.Second);
    	return total_sec;
    }

    Время измеряется в секундах, прошедших с 00:00:00 01.01.2000.

    ivan-petrov, 07 Ноября 2011

    Комментарии (27)
  3. PHP / Говнокод #8356

    +182

    1. 1
    2. 2
    <?php echo "<html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <title>$PAGE_TITLE</title> </head> <body> <table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber1'> <tr> <td width='100%' colspan='2' bgcolor='#DDFFFF'> <p align='center'>здесь выводится шапка</td> </tr> <tr> <td width='17%' align='left' valign='top' bgcolor='#FFDFFF'> <b>Меню сайта</b><p> <b>-</b><a href='index.php?mod=mod1'>Модуль1</a> <br> - <a href='index.php?mod=mod2'>Модуль2</a></td> <td width='83%' align='left' valign='top'>"; ?>
    // Предвижу комментарии, где скажут, почему я не вывожу HTML код отдельно, а php отдельно. Я приучил себя к написанию 100% PHP кода

    Хоть это и из статьи 2006 года , но всё равно кажется бредом .

    Error, 30 Октября 2011

    Комментарии (27)
  4. Ruby / Говнокод #8198

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    def format_price price, delimeter = ' '
      s, i = price.to_s.reverse, 0
      Array.new(s.size) do |n|
        c = n.zero? ? '' : ((i += 1) % 3).zero? ? delimeter.to_s : ''
        c + s[n, 1]
      end.join.reverse
    end

    10000 -> "10 000"
    Как такое вообще принято делать между ровными пацанами?

    LeshaXakir, 14 Октября 2011

    Комментарии (27)
  5. Objective C / Говнокод #8104

    −111

    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
    for (int i = 0; i < [select count]; i++) {
                        NSIndexPath *iPath = [select objectAtIndex:i];
                        if (iPath.section == 0) {
                            business = iPath.row;
                        }
                    }
                    
                    for (int i = 0; i < [select count]; i++) {
                        NSIndexPath *iPath = [select objectAtIndex:i];
                        if (iPath.section == 1) {
                            company = iPath.row;
                        }
                    }
                    
                    for (int i = 0; i < [select count]; i++) {
                        NSIndexPath *iPath = [select objectAtIndex:i];
                        if (iPath.section == 2) {
                            turnover = iPath.row;
                        }

    Cкажите дети, сколько раз вызовется [count] за время исполнения участка кода, выведете формулу по которой решается задача.

    Psionic, 06 Октября 2011

    Комментарии (27)
  6. Java / Говнокод #8005

    +71

    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
    if (prodAttainment < payeeSalesGoal)
    {
    	cashComp = 1;
    }
    else if (prodAttainment < 1.25 * payeeSalesGoal
    		&& prodAttainment >= payeeSalesGoal)
    {
    	cashComp = 0.75;
    }
    else if (prodAttainment >= 1.25 * payeeSalesGoal)
    {
    	cashComp = 0.5;
    }

    Меня гнет или и правда нужно столько проверок? Чтоб наверняка...

    askell, 27 Сентября 2011

    Комментарии (27)
  7. 1C / Говнокод #7998

    −160

    1. 1
    Номенклатура

    Слово гадкое, не то что программа.

    alexoy, 27 Сентября 2011

    Комментарии (27)
  8. JavaScript / Говнокод #7990

    +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
    // ==UserScript==
    // @name	govnokod.ru new comments mark
    // @namespace	('__'X)
    // @description	govnokod.ru new comments mark for Ctrl+F
    // @include	http://*.govnokod.ru/*
    // @include	http://govnokod.ru/*
    // ==/UserScript==
    
    function addNewMark()
    {
    var	i, d = document.getElementsByTagName('div');
    	for (i in d) if (d[i].className == 'entry-comment-wrapper new')
    	{
    		d[i].getElementsByTagName('p')[0].getElementsByTagName('a')[1].innerHTML += 'new';
    	}
    }
    
    if (location.hostname.match(/govnokod\.ru$/))
    {
    	if (document.addEventListener)
    	{
    		document.addEventListener('DOMContentLoaded', addNewMark(), false);
    	} else {
    		window.addEventListener('load', addNewMark(), false);
    	}
    }
    //* OR
    //* 1) Copypaste into browser @field: javascript:var i,d=document.getElementsByTagName('div');for(i in d)if(d[i].className=='entry-comment-wrapper new')d[i].getElementsByTagName('p')[0].getElementsByTagName('a')[1].innerHTML+='new';void(0);
    //* 2) Ctrl+F for '#new'

    Накидал только что. Помечает новые посты меткой "#new", можно контролэфить.
    Работает только для страниц отдельных ГК, в том числе из мусорки.
    Треды до полсотни комментов можно и так оглядеть, если больше - открываю отдельно.
    Но всё равно стоит добавить фичу на стороне сервера.

    ej, 26 Сентября 2011

    Комментарии (27)
  9. PHP / Говнокод #7839

    +169

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <!--CAPCHA-->
    <?php
    	$input = array ("0283", "0830", "1541", "3510", "7269", "0110", "2500", "4998", "7203", "9480", 
       				"1540", "1581", "1891", "0064", "0128", "0256", "0512", "1024", "2048", "4096");
    	$rand_keys = array_rand($input);
    	$img = $input[$rand_keys];
    	$_SESSION['img'] = $img;
    	print ("<img src=\"/images/$img.gif\">");	
    ?>
    <!--CAPCHA answer-->

    уже было подобное, но я не удержался.... )))

    realsugar, 12 Сентября 2011

    Комментарии (27)
  10. PHP / Говнокод #7814

    +161

    1. 1
    $period = in_array($bullRegionId,array_keys($periods)) ? $periods[$bullRegionId]['text'] : $periods['default']['text'];

    Интересна сама проверка на существование ключа, не правда ли? :-)
    Код мой. Коллега учуял, что от него несколько плохо пахнет и предложил запостить сюда))

    Nemoden, 09 Сентября 2011

    Комментарии (27)
  11. Куча / Говнокод #7654

    +135

    Пони

    TheHamstertamer, 25 Августа 2011

    Комментарии (27)