Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите алгоритмом [D7, XP]


Страницы:   1 2

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]
> это не месяц. месяц круглый и желтый.

Гы... Он не круглый, круглая Луна. И то, не всегда. Месяц, он серповидный... :))


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо