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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2012, 09:54   #1
Hirurg_90
 
Регистрация: 27.10.2011
Сообщений: 6
По умолчанию Функции/процедуры даты

Здравствуйте! Помогите плз! Суть программы в том, чтобы находить заданный файл(по дате) в архиве, затем из этих данных построить график. Все работает, только траблы с датой, задаю апрель 2011 года, график не строиться, так как в апреле 30 дней, а я задал for d:=1 to 31 do begin, меняю на 30, работает.Ниже полный листинг программы:
Спасибо!
ЗЫ Не получается под спойлер закинуть листинг, не поддерживается такой ББ код?
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Chart1: TChart;
    Chart2: TChart;
    Series1: TLineSeries;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Grapher;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  yys,mms:string;
  data: array[1..31,1..24]of integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
act:real;
dt:tdatetime;
path : string;
stb :string;
k,d,h,yy,mm :word;
f :textfile;
begin
   yys:=edit1.Text;
   mms:=edit2.Text;
   path:='D:/ASd/cosray!/ftp_nm/c/'+yys+'c/'+yys+'aatb/'+yys[3]+yys[4]+mms+'aatb.c0c';
   if fileexists(path)then begin
   assignfile(f,path);
   reset(f);
   for k:=1 to 7 do readln(f,stb);
   for d:=1 to 31 do begin
   for h:=1 to 24 do read(f,data[d,h]);
   readln(f,stb);
   end;
   closefile(f);
   edit1.color:=clmoneygreen;
   Grapher;

   end
      else    begin

   for d:=1 to 31 do for h:=1 to 24 do data[d,h]:=0;
   edit1.color:=clred;
    end;
    end;
Procedure Tform1.Grapher;
var
d,h,yy,mm:word;
act:double;
dt:tdatetime;
begin
for d:=1 to 30 do begin
   for h:=1 to 24 do begin
   yy:=StrToInt(yys);
   mm:=StrToInt(mms);
   Act:=Data[d,h];
   DT:=EnCOdeDate(yy,mm,d)+EnCodeTime(h-1,0,0,0);
   Series1.AddXY(DT,Act,'',0,);
                      end;
                 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

end.


___________
Тут на форуме не поддерживается тег [spoiler]...[/spoiler]
и код оформлятся тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

Модератор.

Последний раз редактировалось Serge_Bliznykov; 05.04.2012 в 11:12.
Hirurg_90 вне форума Ответить с цитированием
Старый 05.04.2012, 10:28   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,320
По умолчанию

Заведите массив c: array[1..12] of integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) с количеством дней в месяце.
Код:
function leap(year: integer): integer;
begin
  if ((year mod 4 = 0) and (year mod 100 <> 0)) or (year mod 400 = 0) then
    leap := 1
  else
    leap := 0;
end;
И сделайте c[2]:=c[2]+leap(year), чтобы массив содержал правильные размеры месяцев.
Затем берите размеры месяца из массива.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 09.04.2012, 08:31   #3
Hirurg_90
 
Регистрация: 27.10.2011
Сообщений: 6
По умолчанию

Спасибо большое!
Hirurg_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функции даты @mazonk@ Общие вопросы Delphi 6 21.06.2011 09:13
Процедуры и функции Pontiac228 Помощь студентам 0 11.05.2011 21:39
Вывод даты в функции Сцепить ogololobov2009 Microsoft Office Excel 5 18.03.2011 13:10
Процедуры и функции GOSHA24Rus Помощь студентам 0 20.12.2009 06:56
функции даты wall66 Microsoft Office Access 3 04.12.2008 22:16