- 1
- 2
DATEADD(day,DATEPART(day, DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,DATEADD(d,
(day(EndDate)-1)*-1,EndDate))+1,0)))-1,DATEADD(d,(day(EndDate)-1)*-1,EndDate))
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−116
DATEADD(day,DATEPART(day, DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,DATEADD(d,
(day(EndDate)-1)*-1,EndDate))+1,0)))-1,DATEADD(d,(day(EndDate)-1)*-1,EndDate))
Вот так в M$ SQL вычисляют последний день месяца.
http://govnokod.ru/15606#comment223642
+153
public function getPagination($page, $rows, $limit){
$pageArray = array();
if ($rows > $limit){
$allPage = ceil($rows/$limit);
if ($allPage <= 7){
for ($i=1;$i<=$allPage;$i++){$pageArray[]=$i;}
}else{
if ($page < 5){
for ($i=1;$i<=($page+3);$i++){$pageArray[]=$i;}
$pageArray[]=$allPage;
}else{
if ($allPage <= ($page+3)){
$pageArray[]=1;
for ($i=($page-3);$i<=$allPage;$i++){$pageArray[]=$i;}
}else{
$pageArray[]=1;
for ($i=($page-3);$i<=($page+3);$i++){$pageArray[]=$i;}
$pageArray[]=$allPage;
}
}
}
return array(
'pages' => $pageArray,
'page' => $page
);
}else{
return array(
'pages' => 1,
'page' => $page
);
}
}
My friend wrote pagination function. takes current page, number of rows (from query), and limit on each page. function works really good but :D govno kod :D
+147
...
$log = _POST['login'];
$pass = _POST['password'];
$sel = "SELECT * FROM `users` WHERE `login`=$log AND `password`=$pass";
...
Шок! Найдены исходники движка Говнокода!
Пожалуй, самый эпичный момент выложен тут.
+162
$arOrders[$arDetail['PROPERTIES']['YC_ORDER']['VALUE']]['ORDER_DETAILS'][$arDetail['PROPERTIES']['YC_CITY']['VALUE']][] = $arDetail['ID'];
Черный пояс по заполнению массивов
+74
OutputStream stream = openOutputStream();
Throwable mainThrowable = null;
try {
// что-то делаем со stream
} catch (Throwable t) {
// сохраняем исключение
mainThrowable = t;
// и тут же выбрасываем его
throw t;
} finally {
if (mainThrowable == null) {
// основного исключения не было. Просто вызываем close()
stream.close();
}
else {
try {
stream.close();
} catch (Throwable unused) {
// игнорируем, так как есть основное исключение
// можно добавить лог исключения (по желанию)
}
}
}
КВА КВА ГЦ РЕШАЕТ ВСЕ ПРОБЛЕМЫ
АВТОДЕСТРУКТОРЫ ЧТО ЭТО ТАКОЕ
http://habrahabr.ru/post/178405/
+136
#include <stdio.h>
#include <inttypes.h>
inline uint8_t mid_ch (uint8_t a, uint8_t b, uint8_t res)
{
if (b == 0){ if (a >= 2) return mid_ch (a-2, b , res+1); else return res;}
if (a == 0){ if (b >= 2) return mid_ch (a , b-2, res+1); else return res;}
return mid_ch (a-1, b-1, res+1);
}
uint64_t mid_0_ch (uint64_t a, uint64_t b)
{
return mid_ch(a, b, 0);
}
int main(void)
{
printf("%u %u", mid_0_ch (253, 123), (253+123)/2);
return 0;
}
Нахождение среднего арифметического двух чисел через рекурсию. Сначала сделал для uint64_t чтобы это имело смысл, ведь сложение двух 64-битных чисел с записью результата в третье может привести к целочисленному переполнению (для 64-битных чисел, сложение которых может привести к переполнению, этот код работал чрезвычайно медленно, поэтому я ограничился 8-битными). При таком наркоманско-рекурсивном алгоритме этого переполнения не будет. 128-битные типы есть только как нестандартное расширение, но тогда еще возникает вопрос, как найди среднее арифметическое двух таких 128-битных чисел? А если есть 256-битные, то как тогда их них находить среднеарифметическое... ну и так далее.
Можно эту проблему еще решать через битовые маски т.е. убрать из обеих чисел самые старшие биты (предварительно сохранив их), сложить эти два числа, поделить на два, потом уже эти сохраненные биты вида 10000... или 0000... оба поделить на 2(сдвинуть на один разряд) и прибавить. Наркоманство какое-то.
Почему бы не сделать в С некий особый целочисленный тип, в котором любая фигня влезет, но который бы использовался только временно для промежуточных вычислений, чтобы не делать бэкапы битиков всяких?
+81
program matr;
uses
crt;
var
mas:array [1..100] of integer;
i,n,imin,imax,min,max,razn:integer;
begin
clrscr;
imax:=1;
imin:=1;
randomize;
write('Введите количество элементов: ');
readln(n);
for i:=1 to n do
begin
mas[i]:=random(10)-5;
write(mas[i]:4);
if mas[i]>mas[imax] then
begin
imax:=i;
end
else
if (mas[i]<mas[imin]) then
begin
imin:=i;
end;
end;
writeln;
writeln('MAX[',imax,']:=',mas[imax]);
writeln('MIN[',imin,']:=',mas[imin]);
razn:=mas[imax]+mas[imin];
writeln('Сумма MAX и MIN:=',razn);
end.
Написано by "ТАМБОВСКИЙ ВОЛК. Профессионал".
Знатное говнецо нынче пишут "профессионалы".
http://www.programmersforum.ru/showthread.php?t=98747
+78
DynArray = [1..2] of real;
var
A : ^DinArray;
n, i : word;
BEGIN
write('Укажите размер массива:');
readln(n);
GetMem(A,n*6);
. . .
{$R-}
for i:=1 to n do
A[i]:=random;
. . . {любые действия с элементами масссива}
{$R+}
FreeMem(A,n*6)
END.
Просто феерический говнокод на "Pascal".
http://logi.cc/dinamicheskaya-pamyat-primer-23/
+88
var
s: string := '1 2 4 8 16 32 64 128 256 512';
sum: integer;
num,p: integer;
numstr: string;
begin
sum := 0;
while s.Length>0 do
begin
while s[1]=' ' do // Удаление лидирующих пробелов
Delete(s,1,1);
p := Pos(' ',s); // Поиск следующего пробела
if p=0 then // Если он не найден, то до конца строки находится последнее число
p := s.Length;
numstr := Copy(s,1,p);
Delete(s,1,p);
num := StrToInt(numstr);
sum += num;
end;
writeln('Сумма чисел строки равна ',sum);
end.
"Pascal" не умеет в split?
http://pascalabc.net/wiki/index.php/Строки_и_символы._Тексты_программ
+69
public void startApp() {
StringItem si = new StringItem("Some label","Some text");
try{
Image img = Image.createImage("/res/path/to/image.gif");
FORM.append(img);
}catch (java.io.IOException ioe){
ioe.printStackTrace();
}
FORM.append(si);
DISPLAY.setCurrent(FORM);
}
Wtf?
http://www.gfs-team.ru/articles/read/107