Delphi高级数据类型:集合类型



implementation

{$R *.dfm}
function LeapYear(y: integer): string;
begin
  {if ((y mod 4=0) and (y mod 100<>0)) or ((y mod 100=0) and (y mod 400=0)) then}
  if (y mod 4=0)and(y mod 100<>0)or(y mod 400=0)then
    LeapYear := '是'
  else
    LeapYear := '不是';
end;

function ji(m: word):string;
type
  jijie = set of 1..12;
var
  Spring, summer, autumn, Winter: jijie;
begin
  Spring := [3, 4, 5];
  Summer := [6, 7, 8];
  Autumn := [9, 10, 11];
  Winter := [12, 1, 2];
  if m in Spring then ji := '春';
  if m in Summer then ji := '夏';
  if m in Autumn then ji := '秋';
  if m in Winter then ji := '冬';
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  year, month, day: word;
begin
  DecodeDate(Date, year, month, day);
  Edit1.Text := IntToStr(year);
  ComboBox1.Text := IntToStr(month);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  y, m, d:word;
begin
  y := StrToInt(Edit1.Text);
  Edit2.Text := format('%s  ',[LeapYear(y)]);
  m := StrToInt(ComboBox1.Text);
  Edit3.Text := format('%s  ',[ji(m)]);
  if m =2 then
    if Leapyear(y) = '是' then
      d := 29
    else
      d := 28;

  if m in [1, 3, 5, 7, 8, 10, 12] then
    d := 31;

  if m in [4, 6, 9, 11] then
    d := 30;

  Edit4.Text := format('%d',[d]);
end;

procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  (Sender as TEdit).SetFocus;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  j: set of Char;
begin
  J := ['0'..'9',#8];
  if not(key in j) then key := #0;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Edit2.Text := '';
  Edit3.Text := '';
  Edit4.Text := '';
end;

end.


上一篇: Delphi高级数据类型:子界类型
下一篇: Delphi使用XmlHttp获取时间
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: Delphi 数据类型 集合类型
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭