unit DateF;interfaceuses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Dates, StdCtrls;type
TDateForm = class(TForm)
LabelDate: TLabel;
BtnIncrease: TButton;
BtnDecrease: TButton;
BtnAdd10: TButton;
BtnSubtract10: TButton;
BtnLeap: TButton;
BtnToday: TButton;
procedure BtnIncreaseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BtnDecreaseClick(Sender: TObject);
procedure BtnAdd10Click(Sender: TObject);
procedure BtnSubtract10Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure BtnLeapClick(Sender: TObject);
procedure BtnTodayClick(Sender: TObject);
private
TheDay: TDate;
public
{ Public declarations }
end;var
DateForm: TDateForm;implementation{$R *.DFM}procedure TDateForm.FormCreate(Sender: TObject);
begin
TheDay := TDate.Create (2001, 12, 25);
LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.BtnIncreaseClick(Sender: TObject);
begin
TheDay.Increase;
LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.BtnDecreaseClick(Sender: TObject);
begin
TheDay.Decrease;
LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.BtnAdd10Click(Sender: TObject);
begin
TheDay.Increase (10);
LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.BtnSubtract10Click(Sender: TObject);
begin
TheDay.Decrease (10);
LabelDate.Caption := TheDay.GetText;
end;procedure TDateForm.FormDestroy(Sender: TObject);
begin
TheDay.Free;
end;procedure TDateForm.BtnLeapClick(Sender: TObject);
begin
if TheDay.LeapYear then
ShowMessage ('Leap year')
else
ShowMessage ('NON Leap year');
end;procedure TDateForm.BtnTodayClick(Sender: TObject);
begin
TheDay.SetValue (Date);
LabelDate.Caption := TheDay.GetText;
end;end.
unit Dates;interfacetype
TDate = class
private
fDate: TDateTime;
procedure SetDay(const Value: Integer);
procedure SetMonth(const Value: Integer);
procedure SetYear(const Value: Integer);
function GetDay: Integer;
function GetMonth: Integer;
function GetYear: Integer;
public
constructor Create; overload;
constructor Create (y, m, d: Integer); overload;
procedure SetValue (y, m, d: Integer); overload;
procedure SetValue (NewDate: TDateTime); overload;
function LeapYear: Boolean;
procedure Increase (NumberOfDays: Integer = 1);
procedure Decrease (NumberOfDays: Integer = 1);
function GetText: string;
property Year: Integer read GetYear write SetYear;
property Month: Integer read GetMonth write SetMonth;
property Day: Integer read GetDay write SetDay;
end;implementationuses
SysUtils, DateUtils;procedure TDate.SetValue (y, m, d: Integer);
begin
fDate := EncodeDate (y, m, d); <---------这个EncodeDate的宣判在哪里??
end;function TDate.LeapYear: Boolean;
begin
Result := IsInLeapYear(fDate); <---------这个IsInLeapYear的宣判在哪里??
end;procedure TDate.Increase (NumberOfDays: Integer = 1);
begin
fDate := fDate + NumberOfDays;
end;function TDate.GetText: string;
begin
GetText := DateToStr (fDate);
end;procedure TDate.Decrease (NumberOfDays: Integer = 1);
begin
fDate := fDate - NumberOfDays;
end;constructor TDate.Create (y, m, d: Integer);
begin
fDate := EncodeDate (y, m, d);
end;constructor TDate.Create;
begin
fDate := Date;
end;procedure TDate.SetValue(NewDate: TDateTime);
begin
fDate := NewDate;
end;procedure TDate.SetDay(const Value: Integer);
begin
fDate := RecodeDay (fDate, Value);
end;procedure TDate.SetMonth(const Value: Integer);
begin
fDate := RecodeMonth (fDate, Value);
end;procedure TDate.SetYear(const Value: Integer);
begin
fDate := RecodeYear (fDate, Value);
end;function TDate.GetDay: Integer;
begin
Result := DayOf (fDate);
end;function TDate.GetMonth: Integer;
begin
Result := MonthOf (fDate);
end;function TDate.GetYear: Integer;
begin
Result := YearOf (fDate);
end;
end.
解决方案 »
- 【提问】声明为接口的实例属性,怎样释放呢?实例属性该Free还是FreeAndNil?
- 关于delphi的webservice客户端xml文件传输
- 如何取得SQL执行的消息
- 呼唤高手!异常处理!
- 請問如何移除自己編寫並安裝的組件呢?
- 中国足球输了,但中国人民不会输,干掉他妈的小日本。
- 一个简单的打印问题
- 三层结构,在程序中能同时操作两个数据库吗?
- 知道的请帮帮我,在delphi中调用word,当你关闭了word之后,word会提示你要不要保存修改了的文档,怎么判断用户是点了保存还是不保存?
- 大家来抢分啊@@@@,知道的人马上拿分类
- Number is out of range问题
- 请教:关于cxgrid的拖放记录功能实现
目前的情况下,你是可以直接定位到的
你按住ctrl键,用鼠标点击EncodeDate或者IsInLeapYear,那么你就会看到这个函数的声明了(即你说的宣判),然后你再按ctrl,shift和向下方向键,这样你就可以看函数的实现部分了。