我想写一个更改系统时间的小程序,先让用户输入年月日格式如下
2006-02-28
我先用MaskEdit限制EditMask为!9999/99/00;1;_ (0000-00-00)
但是必须在按确定时判断输入的时间是否真确,(比如说闰年的二月问题,还有限制年份为1980到2099年),我想问是否可以不用自己一个字符一个字符的写判断,有没有什么函数可以解决,
还有时间的判断 13:22

解决方案 »

  1.   

    try
      StrToDate(Edit1.Text)
    Except
      请重新输入。
    end;
      

  2.   

    先用楼上的方法判断输入的是不是时间格式(闰月的问题在这里解决)。然后将用户输入的日期用DecodeDateTime方法拆分成数字,再进行其他限定的判断.DecodeDateTime的使用方法看帮助
      

  3.   

    我用楼上的方法,怎么处理不了异常啊,请大家看看,是不是哪写错了procedure TForm4.Button1Click(Sender: TObject);
    var
      NewTime: TDate;
    begin
        try
          NewTime:=StrToDateTime(MaskEdit1.Text); 
      except
        On Ex: EConvertError do
          showmessage('重新输入!');
      end;
    end;
      

  4.   

    我关掉Tools/Debugger Options 调试运行后就会显示异常处理的消息
    但是,我关掉IDE后再运行就不小时异常处理消息了,这是为什么呀?