
23.04.2008, 23:21
|
 |
Прохожий
|
|
Регистрация: 19.04.2008
Сообщения: 42
Репутация: 10
|
|
Вот в принципе работает. Только с небольшими изменениями. Не знаю как с русскими названиями сделать. Во вторых как переводить TMonth в string формат чтобы вывести на экран.
Поэтому поступил несколько хитро. Может сами переделаете как надо или местные профи подскажут.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMonth =(jan, feb, mar, apr, may, jun, jul, aug, sen, okt, noy, dec);
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Function m1(m:TMonth):integer;
var k:1..366;
d:1..31;
m:TMonth;
st:string;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var t:string;
n,i:integer;
label 10;
begin
k:=StrToInt(Edit1.text);
m:=jan;
For i:=1 to 12 do
begin
d:=m1(m);
if k>d then inc(m)
else
begin
d:=k;
goto 10;
end;
k:=k-d;
end;
10: label1.Caption:= st;
label2.Caption:= IntToStr(d);
end;
Function m1;
var day:integer;
begin
case m of
jan: begin day := 31; st:='январь;end;
feb: begin day := 29; st:='февраль';end;
mar: begin day := 31; st:='март';end;
apr: begin day := 30; st:='апрель';end;
may: begin day := 31; st:='май';end;
jun: begin day := 30; st:='июнь';end;
jul: begin day := 31; st:='июль';end;
aug: begin day := 31; st:='август';end;
sen: begin day := 30; st:='сентябрь';end;
okt: begin day := 31; st:='октябрь';end;
noy: begin day := 30; st:='ноябрь';end;
dec: begin day := 31; st:='декабрь';end;
end;
result:=day;
end;
end.
|