![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
помогите алгоритмом [D7, XP]
kazar © (2008-06-27 14:30:00)а как бы закодить такую штуку) скажем имеется у меня 6 это номер месяца, тоесть июнь, я прибавляю 8 это 14, это буит февраль, на выходе месяцы с июня по февраль
{RASkov} (2008-06-30 00:52:00) [1]> [29] kazar (29.06.08 23:54)
А чем тебе [15] - не пример?
Вот примерно тоже самое, т.е. подправлено:
procedure EnumMes(FromYear, FromMes, CountMes: Integer; Lst: TStrings);
var i: Integer;
begin
{Тут всякие проверки на вшивость, диапазон FromMes, валидность Lst... и т.п.}
for i:=FromMes-1 to FromMes+CountMes-2 do
Lst.Add(Format('%s %d г.', [LongMonthNames[i mod 12+1], FromYear+(i div 12)]));
end;
Например:
EnumMes(2008, 6, 8, ListBox.Items);
korneley (2008-06-30 00:50:00) [2]
> kazar (29.06.08 23:54) [29]
> сори, пример можно
вар МайДатеТайм, типа, TДатеТайм;
...
МайДатеТайм присвоить Нау;
фор и присвоить ноль до КоличествоМесяцев минус один бегин
...
МайДатеТайм присвоить IncMonth(МайДатеТайм);
...
//the
end;
kazar (2008-06-29 23:54:00) [3]сори, пример можно?
Сергей М. (2008-06-29 22:20:00) [4]IncMonth() в цикле по числу "прибавляемых" месяцев, в каждой итерации - сравнение полученного в рез-те инкремента значения даты с указанной границей диапазона дат.
kazar (2008-06-29 22:05:00) [5]И все таки, ёще раз, начальная дата 29.06.2008, конечная дата 29.02.2009. Резульата
Июнь2008, Июль2008, Август2008 …… Январь2009, Февраль2009. Но начальная и конечная дата могут меняться.
Anatoly Podgoretsky (2008-06-27 19:54:00) [6]
> я букву гэ не добавил...
Без буквы Гэ это не код, а без буквы Гэ
Anatoly Podgoretsky (2008-06-27 17:04:00) [7]> korneley (27.06.2008 16:30:23) [23]
Сменить читателей.
Palladin (2008-06-27 16:41:00) [8]
> korneley © (27.06.08 16:27) [21]
да не... в [13] аффтар примеры привел... но мой код все равно на смарку... я букву гэ не добавил...
korneley (2008-06-27 16:30:00) [9]
> Anatoly Podgoretsky © (27.06.08 16:26) [20]
:)) Боюсь, читатели даты будут немного дезориентированы :))
Игорь Шевченко (2008-06-27 16:28:00) [10]Anatoly Podgoretsky © (27.06.08 16:26) [20]
До сих пор в 14-ом месяце было 25 дней
korneley (2008-06-27 16:27:00) [11]
> Palladin © (27.06.08 16:13) [15]
О, блин! Только понял: "Так автору нужны только месяцы!". Поэтому+IntToStr(y+(i div 12));можно исключить. :)
Anatoly Podgoretsky (2008-06-27 16:26:00) [12]> korneley (27.06.2008 16:15:16) [16]
Как это не сработает, я же проверял, у меня получилось 27.14.2008
Palladin (2008-06-27 16:23:00) [13]а они с 1 начинаются, а нафига лишний инкремент, очень сильно влияет на производительность
Поросенок Винни-Пух (2008-06-27 16:21:00) [14]Const
Months:Array [0..11] of String=(
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Ноябрь',
'Декабрь')
Ай-ай! Как не стыдно!
Sysutils.LongMonthNames
Anatoly Podgoretsky (2008-06-27 16:17:00) [15]> Поросенок Винни-Пух (27.06.2008 16:08:14) [14]
Месяц не круглый, в нем от 28 до 31 дня.
korneley (2008-06-27 16:15:00) [16]
> Anatoly Podgoretsky © (27.06.08 15:49) [10]
Не сработает :)
А без цикла не обойтись. Если: "на выходе месяцы с июня по февраль
" ДалееIncMonth()в руки, ну и, как водится - F1
Palladin (2008-06-27 16:13:00) [17]
Const
Months:Array [0..11] of String=(
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Ноябрь',
'Декабрь')
Var
a:Array [0..6] of String;
y,i:Integer;
y:=2008;
For i:=8 to 14 Do a[i-8]:=Months[i mod 12]+' '+IntToStr(y+(i div 12));
Поросенок Винни-Пух (2008-06-27 16:08:00) [18]это оптический обман. еще галилей знал, что месяц круглый
kazar (2008-06-27 16:08:00) [19]Насчёт выхода, скажем пусть пишет в массив. Я получил 14 месяцев, например: июнь 2008 г, июль 2008 г, август 2008 г, ........июнь 2009 г. Тоесть в массиве будут чисто названия этих месяцев.
korneley (2008-06-27 16:07:00) [20]
> Поросенок Винни-Пух © (27.06.08 15:50) [11]
> это не месяц. месяц круглый и желтый.
Гы... Он не круглый, круглая Луна. И то, не всегда. Месяц, он серповидный... :))