Delphi 1
У меня есть программа, которая делает примерно то, что вы хотите. Она сообщает для даты текущую неделю и день недели. Вам необходимо лишь реализовать вычисление предела для дат недели. Кроме того, формат в этом коде для дат задан в виде "06/25/1996".
Вы должны создать форму с именем "Forma", компонентом TEdit с именем "Edit1", четырьмя метками и кнопкой с именем "GetWeekBtn". Убедитесь в том, что обработчиком события формы OnCreate является метод FormCreate.
Надеюсь, что помог вам.
>unit Forma;
>interface
>uses
> SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls;
>type
> TForma1 = class(TForm)
> Edit1: TEdit;
> Label1: TLabel;
> Label2: TLabel;
> Label3: TLabel;
> GetWeekBtn: TButton;
> Label4: TLabel;
> procedure GetWeekBtnClick(Sender: TObject);
> procedure FormCreate(Sender: TObject);
> private { Private declarations }
> Function HowManyDays(pYear,pMonth,pDay:word):integer;
> public { Public declarations }
> end;
>var
> Forma1: TForma1;
>implementation
> {$R *.DFM}
>Uses Inifiles;
>procedure TForma1.FormCreate(Sender: TObject);
> var WinIni:TInifile;
>begin
> WinIni:=TIniFile.Create('WIN.INI');
> WinIni.WriteString('intl','sShortDate','MM/dd/yyyy');
> WinIni.Free;
>end;
>Function TForma1.HowManyDays(pYear,pMonth,pDay:word):integer;
> var Sum:integer;
> pYearAux:word;
>begin
> Sum:=0;
> if pMonth>1 then Sum:=Sum+31;
> if pMonth>2 then Sum:=Sum+28;
> if pMonth>3 then Sum:=Sum+31;
> if pMonth>4 then Sum:=Sum+30;
> if pMonth>5 then Sum:=Sum+31;
> if pMonth>6 then Sum:=Sum+30;
> if pMonth>7 then Sum:=Sum+31;
> if pMonth>8 then Sum:=Sum+31;
> if pMonth>9 then Sum:=Sum+30;
> if pMonth>10 then Sum:=Sum+31;
> if pMonth>11 then Sum:=Sum+30;
> Sum:=Sum + pDay;
> if ((pYear - (pYear div 4)*4)=3D0) and (pMonth>2) then inc(Sum);
> HowManyDays:=Sum;
>end; { HowManyDays }
>procedure TForma1.GetWeekBtnClick(Sender: TObject);
>var
> ADate: TDateTime;EditAux:String;
> Week,year,month,day:Word;
>begin
> EditAux:=Edit1.Text;
> ADate := StrToDate(EditAux);
> Label1.Caption := DateToStr(ADate);
> DecodeDate(Adate,Year,Month,Day);
> Case DayOfWeek(ADate) of
>1: Label4.Caption:='Воскресенье';
> 2: Label4.Caption:='Понедельник';