Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2011, 10:12   #1
@mazonk@
 
Аватар для @mazonk@
 
Регистрация: 23.04.2009
Сообщений: 6
По умолчанию функции даты

Доброго времени суток! Помогите создать процедурку, которая по дню недели создаст список дат.
Например, у меня есть 5 checkbox, соответствующие дням неделям, потом определяем промежуток на который нам надо определить даты (пример-10, программно задается). и начиная с текущей даты надо вывести даты соответствующее дням неделям по checkbox.
@mazonk@ вне форума Ответить с цитированием
Старый 02.06.2011, 10:26   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

F1 Day of Year Month Week
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 02.06.2011 в 10:32.
evg_m вне форума Ответить с цитированием
Старый 02.06.2011, 10:31   #3
@mazonk@
 
Аватар для @mazonk@
 
Регистрация: 23.04.2009
Сообщений: 6
По умолчанию

я с этой функцией и работаю, не пойму как мне организовать цикл...
@mazonk@ вне форума Ответить с цитированием
Старый 02.06.2011, 10:59   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Распишите пример данных , что на вход подаете и то, что должно получиться на выходе
phomm вне форума Ответить с цитированием
Старый 02.06.2011, 11:57   #5
@mazonk@
 
Аватар для @mazonk@
 
Регистрация: 23.04.2009
Сообщений: 6
По умолчанию

dat := date();
for kol := 1 to 31 do // количество дней, на которое определяются даты от текущей
If CheckBox1.Checked = true then
If DayOfTheWeek(Dat) = 1 then // для понедельника. И так для каждого дня недели
begin
Memo1.Lines.Add(DateToStr(Dat));
dat := dat + 1;
end
else
begin
dat := dat + 1;
end;

это работает для понедельника, и для вторника будет работать, т.е. по отдельности для каждого дня недели. Как мне соединить их один цикл?...
Изображения
Тип файла: bmp пр.bmp (121.5 Кб, 132 просмотров)
@mazonk@ вне форума Ответить с цитированием
Старый 02.06.2011, 14:46   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы предложил такой вариант:
Код:
unit DateExampleUnit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    cbDayWeek: TComboBox;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var Year, Month, Day : word;
begin
  DecodeDate(Date, Year, Month, Day);
  DateTimePicker1.Date := EncodeDate(Year, Month, 1);
  DateTimePicker2.Date := IncMonth(DateTimePicker1.Date, 1)-1;
  cbDayWeek.ItemIndex := 0;
end;

function DayOfTheWeek(DateTime : TDateTime) : word;
const ISOFirstWeekDay = 2; {неделя по ISO начинается с понедельника}
begin
  DayOfTheWeek := ((DayOfWeek(DateTime) - ISOFirstWeekDay + 7) mod 7) + 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var dat : TDateTime;
    IncrementValue : integer;
begin
  Memo1.Lines.Clear;
  dat := DateTimePicker1.Date;
  IncrementValue := 1; //на сколько дней увеличивать дату...
  while dat <= DateTimePicker2.Date do begin
    if DayOfTheWeek(Dat) = (cbDayWeek.ItemIndex + 1) then begin
       Memo1.Lines.Add(DateToStr(Dat));
       IncrementValue := 7; // нашли нужный день недели, теперь через каждые 7 дней
    end;
    dat := dat + IncrementValue;
  end;
end;


end.
полные исходники в приложении (и отдельно EXEшник)
Вложения
Тип файла: rar DateExample.rar (1.5 Кб, 33 просмотров)
Тип файла: rar DateExample_EXE_only.rar (142.0 Кб, 28 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.06.2011, 09:13   #7
@mazonk@
 
Аватар для @mazonk@
 
Регистрация: 23.04.2009
Сообщений: 6
По умолчанию

спасибо за помощь разобралась
@mazonk@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод даты в функции Сцепить ogololobov2009 Microsoft Office Excel 5 18.03.2011 13:10
Определить среднее значение продаж от даты до даты СтепКо Microsoft Office Excel 1 26.02.2011 20:08
Программа на СИ++, используя функции работы с файлами и функции <string.h> Аня Popova Фриланс 9 13.09.2010 15:52
Автоматизация заполнения даты и зависимость ячейки времени к ячейке даты. Каравай Microsoft Office Excel 14 11.03.2010 18:11
функции даты wall66 Microsoft Office Access 3 04.12.2008 22:16