- 1
Order by SYSDATE - NVL(p_date, created)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−118
Order by SYSDATE - NVL(p_date, created)
Сортировка по дате в обратном порядке
+160
<?php
define ('SENGINES',serialize(
array(
'yandex',
'google',
// ... тут их еще несколько
)));
class <засекречено> {
/**
* engines
*
* @var array
*/
private $_engines = unserialize(SENGINES);
// ...
}
+144
<?php
define('PARAM_INT','i');
define('PARAM_INTEGER','i');
define('PARAM_FLOAT','f');
define('PARAM_DOUBLE','f');
define('PARAM_STRING','s');
define('PARAM_ID','id');
define('PARAM_ANY','*');
define('PARAM_RAW','raw');
define('PARAM_OBJECT','o');
define('PARAM_URL','u');
define('PARAM_EMAIL','e');
define('SOURCE_INPUT','$_GET');
define('SOURCE_FORM','$_POST');
define('SOURCE_COOKIE','$_COOKIE');
define('SOURCE_REQUEST','$_REQUEST');
define('SOURCE_PATH','$this->params');
define('SOURCE_ANY','');
class Request implements {
const PARAM_INT=PARAM_INT;
const PARAM_INTEGER=PARAM_INTEGER;
const PARAM_FLOAT=PARAM_FLOAT;
const PARAM_DOUBLE=PARAM_DOUBLE;
const PARAM_STRING=PARAM_STRING;
const PARAM_ID=PARAM_ID;
const PARAM_ANY=PARAM_ANY;
const PARAM_RAW=PARAM_RAW;
const PARAM_OBJECT=PARAM_OBJECT;
const PARAM_URL=PARAM_URL;
const PARAM_EMAIL=PARAM_EMAIL;
const SOURCE_INPUT=SOURCE_INPUT;
const SOURCE_FORM=SOURCE_FORM;
const SOURCE_COOKIE=SOURCE_COOKIE;
const SOURCE_REQUEST=SOURCE_REQUEST;
const SOURCE_PATH=SOURCE_PATH;
const SOURCE_ANY=SOURCE_ANY;
.....
}
цель: пользоваться как и в стиле ООП, как и сделать запись короче, без указания Request::
некоторые значения синомизированы для менее мучительного процесса вспоминания имен констант.
говно, но что делать....
может, у кого-то мозги работают лучше, чем у меня, и предложат другой выход?
зы: кто согласен, что так и нужно делать, минусуйте и топите, не буду в обиде
−108
self.values.each do |v|
if v.is_a? Hash
v.recursively_symbolize_keys!
elsif v.is_a? Array
v.recursively_symbolize_keys!
end
end
Замечательная логика из одного сниппета :)
+150
/* That revolting regular expression explained
/^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/
\---/ \---/\-------------/ \-------/
| | | |
| | | The value
| | ~,|,^,$,* or =
| Attribute
Tag
*/
Это НЕ говонокод, просто коммент к регулярке, просто очень понравился и хотел показать...
Иногда регулярки очен запутанами бывает, и редактировать их турдно без нормальной комментов.
Нашел в shop-script
+151
char line[10];
cout<<"Press any key to exit"<<endl;
cin.getline(line,9);
Очередной перл из решений кандидатских задач.
Видимо в военное время количество символов, генерируемых одной клавишей, может достигать 9. :)
+129
#include <iostream>
#include <windows.h>
#include <pthread.h>
void * func_MyThread(void * args)
{
int S=0; //
int i;
int j;
int k;
pthread_t MyThread;
pthread_create(&MyThread,NULL,func_MyThread,NULL);
for (i=1; i <=8; i++)//
pthread_join(MyThread,NULL);
{
S +=i+1; //
}
pthread_create(&MyThread,NULL,func_MyThread,NULL);
for (j=4; j <=12; j++)//
pthread_join(MyThread,NULL);
{
S+=j; //
}
pthread_create(&MyThread,NULL,func_MyThread,NULL);
for (k=5; k<=20; k++)
pthread_join(MyThread,NULL);
{
S += k*(2*k-1);
}
{
std::cout <<"S= \t" <<S; //
return 0;//
}
студент решал задачу по распределенному программированию.
все очень серьезно.
+154
// $curr_page - старница, на который сейчас находимся
// $n_page - число страниц
// $count - обще число записей
// $param - site - страницы на сайте
// - adm - в админке
function genNumPage($curr_page, $n_page, $count, $param=null) {
$string = parse_url($_SERVER['REQUEST_URI']);
$query = '?'.$string['query'];
$num_page = ceil($count / $n_page);
if (isset($param)) $table = new my_Page("site/site_interface.html", "num_page");
else $table = new my_Page("interface/interface.html", "num_page");
if ($num_page < 2) return null;
for ($i = 1; $i <= $num_page; $i++) {
if ($i != $curr_page) {
if (preg_match('/\?p\=[0-9]{1,3}/', $query)) $href = preg_replace('/\?p\=[0-9]{1,3}/', '?p='.$i, $query);
elseif (preg_match('/\&p\=[0-9]{1,3}/', $query)) $href = preg_replace('/\&p\=[0-9]{1,3}/', '&p='.$i, $query);
elseif ($string['query'] != '') $href = '?'.$string['query'].'&p='.$i;
else $href = '?p='.$i;
if ((!$param) || ($param == 'adm')) $str .= " <a href=".$string['host'].$string['path'].$href.">".$i."</a> ";
else $str .= " <a href=".$string['host'].$string['path'].$href.">".$i."</a> | ";
}
elseif ((!$param) || ($param == 'adm')) $str .= "<span>".$i."</span>";
else $str .= "<span>".$i."</span> | ";
}
if ($curr_page > 1) {
if (preg_match('/\?p\=[0-9]{1,3}/', $query)) $prev = preg_replace('/\?p\=[0-9]{1,3}/', '?p='.($curr_page - 1), $query);
elseif (preg_match('/\&p\=[0-9]{1,3}/', $query)) $prev = preg_replace('/\&p\=[0-9]{1,3}/', '&p='.($curr_page - 1), $query);
elseif ($string['query'] != '') $prev = '?'.$string['query'].'&p='.($curr_page - 1);
else $prev = '?p='.($curr_page - 1);;
if ((!$param) || ($param == 'adm')) $prev = " <a href=".$string['host'].$string['path'].$prev." id=\"PrevLink\">←</a> ";
else $prev = " <a href=".$string['host'].$string['path'].$prev." id=\"PrevLink\">Предыдущая</a> ";
}
if ($curr_page < $num_page) {
if (preg_match('/\?p\=[0-9]{1,3}/', $query)) $next = preg_replace('/\?p\=[0-9]{1,3}/', '?p='.($curr_page + 1), $query);
elseif (preg_match('/\&p\=[0-9]{1,3}/', $query)) $next = preg_replace('/\&p\=[0-9]{1,3}/', '&p='.($curr_page + 1), $query);
elseif ($string['query'] != '') $next = '?'.$string['query'].'&p='.($curr_page + 1);
else $next = '?p='.($curr_page + 1);;
if ((!$param) || ($param == 'adm')) $next = " <a href=".$string['host'].$string['path'].$next." id=\"NextLink\">→</a> ";
else $next = " <a href=".$string['host'].$string['path'].$next." id=\"NextLink\">Следующая</a> ";
}
$table->addValueArray(array(
"NUM" => $str,
"PREV" => $prev,
"NEXT" => $next
));
return $table->myReplace();
}
Генерирует номера страниц. Из одной CMS'ки.
+144
public class ВсеБудетХорошо : Exception
{
public ВсеБудетХорошо()
{
throw new ВсеБудетХорошо();
}
}
throw new ВсеБудетХорошо();
+161
function ss ($id){ // получить дату рождения по ИНН для украины
$result = array();
//sex
$result['sex'] = (substr($id,8,1) % 2) ? 'M' : 'F';
//birthdate
$days = substr($id,0,5);
$year = 1900; $day = 01; $month = 01;
while ($days > 0)
{
$daysInYear = (checkdate (02, 29, $year)) ? 366 : 365;
if ($days > $daysInYear)
{
$days -= $daysInYear;
$year ++;
}
else{
for ($daysInMonth = 31; !checkdate($month, $daysInMonth, $year); $daysInMonth–) ;
if ($days > $daysInMonth)
{
$days -= $daysInMonth;
$month ++;
}
else{
$day = $days;
$days = 0;
}
}
}
$result['year'] = $year;
$result['month'] = $month;
$result['day'] = $day;
return $result;
}
обходить каждый день начиная с 1900 это сила
быстрее было бы
$inn = '2322222222';
$inn = substr($inn,0,5);
$normal_date = date("d.m.Y", strtotime('01/01/1900 + ' . $inn . ' days - 1 days'));