function ABC(y:integer): TDate; begin result := GetDate(某年, 2, 28); if (result + 1) <> GetDate(某年, 3, 1) then result := GetDate(某年, 2, 29); end;
uses DateUtils;function GetDate(iYear, iMonth, iDay: Integer): Integer; var d: TDateTime; begin d := EncodeDateTime(iYear, iMonth, iDay, 0, 0, 0, 0); Result := DayOf(EndOfTheMonth(d)) end;
function TFMBase.GetDate(strDate:TDateTime):string ; var sDate :string ; sYear,sMonth,sDay :string ; begin sDate :=DateToStr(strDate) ; sYear :=copy(sDate,0,pos(DateSeparator,sDate)-1); if length(sYear)=2 then sYear :='20' + sYear ; sDate :=copy(sDate,pos(DateSeparator,sDate)+1,length(sDate)); sMonth :=copy(sDate,0,pos(DateSeparator,sDate)-1); if length(sMonth)=1 then sMonth :='0' + sMonth ; sDay :=copy(sDate,pos(DateSeparator,sDate)+1,length(sDate)); if length(sDay)=1 then sDay :='0' + sDay ; result :=sYear+DateSeparator+sMonth+DateSeparator+sDay; end ;
VAR DT: TDateTime; begin if TryEncodeDate(2010,2,30,DT) then showmessage(formatdatetime('YYYY-MM-DD',DT)) else begin DT:= EndOfTheMonth(EncodeDate(2010,2,1)); showmessage(formatdatetime('YYYY-MM-DD',DT)); end end;
procedure TForm1.Button1Click(Sender: TObject); function GetDate(iYear, iMonth, iDay: Integer): TDateTime; begin if not TryEncodeDate(iYear,iMonth,iDay,Result) then Result:= EndOfTheMonth(EncodeDate(iYear,iMonth,1)); end; begin showmessage(formatdatetime('YYYY-MM-DD',GetDate(2010,2,30))); end;
begin
result := GetDate(某年, 2, 28);
if (result + 1) <> GetDate(某年, 3, 1) then
result := GetDate(某年, 2, 29);
end;
uses DateUtils;function GetDate(iYear, iMonth, iDay: Integer): Integer;
var
d: TDateTime;
begin
d := EncodeDateTime(iYear, iMonth, iDay, 0, 0, 0, 0);
Result := DayOf(EndOfTheMonth(d))
end;
function TFMBase.GetDate(strDate:TDateTime):string ;
var
sDate :string ;
sYear,sMonth,sDay :string ;
begin
sDate :=DateToStr(strDate) ;
sYear :=copy(sDate,0,pos(DateSeparator,sDate)-1);
if length(sYear)=2 then
sYear :='20' + sYear ; sDate :=copy(sDate,pos(DateSeparator,sDate)+1,length(sDate));
sMonth :=copy(sDate,0,pos(DateSeparator,sDate)-1);
if length(sMonth)=1 then
sMonth :='0' + sMonth ; sDay :=copy(sDate,pos(DateSeparator,sDate)+1,length(sDate));
if length(sDay)=1 then
sDay :='0' + sDay ; result :=sYear+DateSeparator+sMonth+DateSeparator+sDay;
end ;
VAR
DT: TDateTime;
begin
if TryEncodeDate(2010,2,30,DT) then showmessage(formatdatetime('YYYY-MM-DD',DT))
else begin
DT:= EndOfTheMonth(EncodeDate(2010,2,1));
showmessage(formatdatetime('YYYY-MM-DD',DT));
end
end;
procedure TForm1.Button1Click(Sender: TObject);
function GetDate(iYear, iMonth, iDay: Integer): TDateTime;
begin
if not TryEncodeDate(iYear,iMonth,iDay,Result) then
Result:= EndOfTheMonth(EncodeDate(iYear,iMonth,1));
end;
begin
showmessage(formatdatetime('YYYY-MM-DD',GetDate(2010,2,30)));
end;