Показать сообщение отдельно
  #6  
Старый 23.04.2008, 23:21
Аватар для Professor Farnsworth
Professor Farnsworth Professor Farnsworth вне форума
Прохожий
 
Регистрация: 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.
Ответить с цитированием