关于日期的问题 ( 积分: 10 )

  • 主题发起人 主题发起人 fuxin198311
  • 开始时间 开始时间
F

fuxin198311

Unregistered / Unconfirmed
GUEST, unregistred user!
如我在edit1输入200701 那么edit2显示2007-01-31 若输入200709 则显示2007-09-30 也就是当没有输入几号就算出当月的最后一天
现在的问题就是怎么去判断根据我输入的月份算出最后一天的日期是31号还是30号 还有润年的情况 二月就28,29号 还未解决 我的代码是这样的
procedure TForm1.Button1Click(Sender: TObject);
begin
if length(copy(edit1.Text,5,2))<>2 then
begin
showmessage('格式错误');
exit;
end;
if length(edit1.Text)=8 then
edit2.Text:=Copy(edit2.Text,1,4)+'-'+Copy(edit1.Text,5,2)+'-'+Copy(edit1.Text,7,2)
else
begin
edit2.Text:=Copy(edit1.Text,1,4)+'-'+Copy(edit1.Text,5,2)+'-'+'31';
end;
 
function getts(y,m: string):string;
begin
if (strtointdef(m,0)<1) or (strtointdef(m,0)>12) then
begin
result:='没有 "'+m+'" 月份!';
exit;
end else
if (m='1') or (m='3') or (m='5') or (m='7') or (m='8') or (m='10') or (m='12') and (m<>'2') then
result:='31'
else
result:='30';
if m='2' then
if isleapyear(strtoint(y))=true then
result:='29'
else
result:='28'
end;
 
在uses里面添加DateUtils单元,里面有DaysInAMonth(const AYear, AMonth: Word): Word;函数,调用这个函数可以得到这个月的天数
 
后退
顶部