- 1
- 2
- 3
- 4
- 5
- 6
FYears.Items.Clear;
for i := 10 downto 1 do
FYears.Items.Add(IntToStr(Year - i));
FYears.Items.Add(IntToStr(Year));
for i := 1 to 10 do
FYears.Items.Add(IntToStr(Year + i));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+144
FYears.Items.Clear;
for i := 10 downto 1 do
FYears.Items.Add(IntToStr(Year - i));
FYears.Items.Add(IntToStr(Year));
for i := 1 to 10 do
FYears.Items.Add(IntToStr(Year + i));
Заполнение итемов номерами лет
Сначала добавим 10 лет до даты Х
Потом дату Х
Потом 10 лет после даты Х
RAD Studio XE8 FMX.Calendar.Style.pas
+143
if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(LocaleService)) then
S := LocaleService.GetLocaleFirstDayOfWeek
else
S := '6';
FFirstDayOfWeekNum := Ord(S.Chars[0]) - Ord('0');
{$IFDEF MACOS}
FFirstDayOfWeekNum:= Ord(S.Chars[0]) + Ord('0');
{$ENDIF}
{$IFDEF ANDROID}
FFirstDayOfWeekNum := FFirstDayOfWeekNum - MondayOffset;
{$ENDIF}
Это FireMonkey! FMX.Calendar.Style.pas! И это реально работает.
Главное, что всё очевидно.
+141
public function createAdvertApart () { // ВНИМАНИЕ! Видимость функции protected
// проверяем max размер допустимый к загрузке
if ( $_files[size] > 3000000 )
$error[] = "Файл превышает размер три мегабайта";
Прислали вместе с резюме пример кода, а там ...
+144
IntToStr(StrToInt(VarToStr()))
Сегодня пришла мадам и спросила почему это не работает. Сказали что бы так больше не ...кодила.
+144
Шёл 2015 год, а SQLite на ведре так и не научился сравнивать не ASCII'шные строки без учёта регистра...
Или это у меня руки из жопы растут?
+141
func (db *DB) CountResults(filial []int64, device []int64, workplace []int64, from time.Time, to time.Time, splits bool, skip int64) (res []*AvgResults, err error) {
var query string
var rows *pgx.Rows
_, err = db.Exec("SET LOCAL TIME ZONE 'Asia/Yekaterinburg';")
if err != nil {
return nil, err
}
switch {
case splits:
query = `WITH data AS (SELECT "IndicatorResultValue"."IndicatorId", "qm"."Session"."Blocked", "qm"."Result"."SessionId" AS "SessionId", "qm"."DeviceIPRangeType"."Number" AS "RangeType", "qm"."DeviceIPRangeType"."Id" AS "RangeTypeId", "qm"."BranchWorkPlace"."Id" AS "WorkPlaceId", "DeviceIPRange"."BranchId", date("Datetime") as "Date"
FROM qm."Result"
LEFT OUTER JOIN "qm"."Device" ON ("Result"."DeviceId" = "Device"."Id")
LEFT OUTER JOIN "qm"."BranchWorkPlace" ON ("BranchWorkPlace"."Id" = "Device"."WorkPlaceId")
LEFT OUTER JOIN "qm"."Session" ON ("Result"."SessionId" = "Session"."Id")
LEFT OUTER JOIN "qm"."IndicatorResultValue" ON ("Result"."IndicatorResultValueId" = "IndicatorResultValue"."Id")
LEFT OUTER JOIN "qm"."ResultValue" ON ("IndicatorResultValue"."ResultValueId" = "ResultValue"."Id")
LEFT OUTER JOIN "qm"."DeviceIPRangeType" ON ("DeviceIPRangeType"."Id" = "Session"."DeviceIPRangeTypeId")
LEFT OUTER JOIN "qm"."DeviceIPRange" ON ("Session"."DeviceIPRangeId" = "DeviceIPRange"."Id")
FULL OUTER JOIN "queue"."Branches" ON ("DeviceIPRange"."BranchId" = "Branches"."Id" AND (0 = any ($1::int8[]) OR "Branches"."Id" = any($1::int8[])))),
data1 AS (SELECT COUNT(DISTINCT(data."SessionId")) AS "Count",
"BranchId",
CASE WHEN "RangeTypeId" < 3 THEN 0
ELSE "RangeTypeId"
END,
"Date"
FROM data
WHERE (0 = any($2::int8[]) OR "RangeType" = any($2::int8[]))
AND (0 = any ($1::int8[]) OR "BranchId" = any($1::int8[]))
AND (0 = any($3::int8[]) OR "WorkPlaceId" = any($3::int8[]))
AND "Date" BETWEEN $4::timestamptz AND $5::timestamptz
AND NOT "Blocked"
GROUP BY "BranchId", CASE WHEN "RangeTypeId" < 3 THEN 0 ELSE "RangeTypeId" END, "Date"),
data2 AS (SELECT "Id", "Name", date("d") AS "Date" FROM
queue."Branches"
CROSS JOIN generate_series($4::timestamptz, $5::timestamptz, $6) as "d"
WHERE (0 = any ($1::int8[]) OR "Id" = any($1::int8[])) ),
data3 AS (SELECT "Count" AS C, 0 AS Avg, data1."Date", data1."RangeTypeId", data1."BranchId"
FROM "data1" GROUP BY "data1"."Date", "Count", "data1"."BranchId", "data1"."RangeTypeId"),
data3_1 AS (SELECT "qm"."DeviceIPRangeType"."Id" FROM "qm"."DeviceIPRange"
RIGHT OUTER JOIN "qm"."DeviceIPRangeType" ON ("qm"."DeviceIPRange"."DeviceIPTypeId" = "qm"."DeviceIPRangeType"."Id")
WHERE (0 = any ($1::int8[]) OR "DeviceIPRange"."BranchId" = any($1::int8[]))
GROUP BY "qm"."DeviceIPRangeType"."Id"),
data4 AS (SELECT "Id", "Name", date("d") AS "Date" FROM
"qm"."DeviceIPRangeType"
CROSS JOIN generate_series($4::timestamptz, $5::timestamptz, $6) as "d"
WHERE "Id" > 2 AND (0 = any($2::int8[]) OR "Number" = any($2::int8[])) AND "Id" IN (SELECT "Id" FROM data3_1)),
data5 AS (SELECT coalesce(c, 0) AS C, coalesce(avg, 0) AS Avg, coalesce("data2"."Date", "data3"."Date") AS date, "data2"."Name", "data3"."RangeTypeId" FROM
data2
FULL OUTER JOIN data3 ON ("data3"."BranchId" = "data2"."Id" AND "data3"."Date" = "data2"."Date"))
SELECT array_agg(coalesce(c, 0) ORDER BY coalesce("data5"."date", "data4"."Date")) AS "Count",
array_agg(coalesce(avg::double precision, 0::double precision) ORDER BY coalesce("data5"."date", "data4"."Date")) AS "Avg",
array_agg(coalesce("data5"."date", "data4"."Date") ORDER BY coalesce("data5"."date", "data4"."Date"))::timestamptz[] AS "Date",
coalesce("data5"."Name", "data4"."Name") AS "Name" FROM data5
FULL OUTER JOIN data4 ON ("data4"."Id" = "data5"."RangeTypeId" AND "data5"."date" = "data4"."Date")
WHERE coalesce("data5"."Name", "data4"."Name") IS NOT NULL
GROUP BY coalesce("data5"."Name", "data4"."Name")
ORDER BY coalesce("data5"."Name", "data4"."Name")`
default:
query = `WITH data AS (SELECT "IndicatorResultValue"."IndicatorId", "qm"."Session"."Blocked", "qm"."Result"."SessionId" AS "SessionId", "qm"."DeviceIPRangeType"."Number" AS "RangeType", "qm"."DeviceIPRangeType"."Id" AS "RangeTypeId", "qm"."BranchWorkPlace"."Id" AS "WorkPlaceId", "DeviceIPRange"."BranchId", date("Datetime") as "Date"
FROM qm."Result"
LEFT OUTER JOIN "qm"."Device" ON ("Result"."DeviceId" = "Device"."Id")
LEFT OUTER JOIN "qm"."BranchWorkPlace" ON ("BranchWorkPlace"."Id" = "Device"."WorkPlaceId")
LEFT OUTER JOIN "qm"."Session" ON ("Result"."SessionId" = "Session"."Id")
LEFT OUTER JOIN "qm"."IndicatorResultValue" ON ("Result"."IndicatorResultValueId" = "IndicatorResultValue"."Id")
...
Код для БД на go
+141
public static void main(String[] args)
{
int[] array = {1,2,3};
permure(array, array.length);
}
private static void permure(int[] arr, int size)
{
if(size < 2){
System.out.println(Arrays.toString(arr));
}else {
for(int k = 0; k < size; k++){
swap(arr, size - 1, k);
permure(arr, size - 1);
}
}
}
private static void swap(int[] arr, int index0, int index1)
{
int tmp = arr[index0];
arr[index0] = arr[index1];
arr[index1] = tmp;
}
Изначально задумывалось чтобы код генерил все возможные варианты перестановок чисел в массиве,но делает ровно половину перестановок.
+66
AnimationAnimator* AnimationAnimator::getThis()
{
return this;
}
Я не знаю что это было, но теперь оно такое. Вызывается из трех мест. Мне страшно :С
+143
_save = (data, callback) ->
tags = if data.tags then data.tags else []
removed_tag_ids = if data.removed_tag_ids then data.removed_tag_ids else []
post = if data.post then data.post else null
new_tags = _.filter tags, (tag) ->
not _.has(tag, "label")
old_tags = _.filter tags, (tag) ->
_.has(tag, "label")
$.when(_.each old_tags, (old_tag) =>
tag_post.save({tag: tag, post: post})
).done(=>
do callback
)
Обратились с вопросом "почему не работает".
PS метод save асинхронный
−120
class Column(object):
"""
Элемент конфигурации
"""
def __init__(self, *args, **kwargs):
hid = False
filters = []
sorters = []
if len(args) == 3:
inner_name, verbose_name, width = args
elif len(args) == 2:
inner_name, verbose_name = args
width = 20
elif len(args) == 4:
inner_name, verbose_name, width, hid = args
elif len(args) == 5:
inner_name, verbose_name, width, hid, filters = args
elif len(args) == 6:
inner_name, verbose_name, width, hid, filters, sorters = args
special_attrs = ['locked', 'editable']
self.code = inner_name
self.name = verbose_name
self.width = width
self.hidden = hid
self.idx = 0
if sorters:
sorters.column = self
if filters:
filters.column = self
filters.code = self.code
#здесь хранятся экземпляры фильтров для колонок
self.filters = filters
#здесь хранятся экземпляры сортировщиков для колонок
self.sorters = sorters
def get_config(self):
''' ?
'''
config = dict()
config['data_index'] = self.code
config['header'] = self.name
config['width'] = self.width
config['hidden'] = self.hidden
return config
Разбор параметров