View Full Version : چک کردن تاریخ
moradii
پنج شنبه 08 مرداد 1383, 12:00 عصر
با سلام
من برای وارد کردن تاریخ شمسی از maskedit استفاده کرده ام با طول 8 کاراکتر آیا تابعی دارید که مقدار وارد شده را چک کند که مقدار غلط واردنکنیم.
همچنین اگر مقداری مانند 01/ 3/83 وارد کردیم ' 3'رابه ' 03' تبدیل کند.
متشکرم
moradi_am
پنج شنبه 08 مرداد 1383, 12:31 عصر
function Tfutil.dateok(farsidate : string): boolean;
var _ss,_mm,_rr,i : integer;
_ret : boolean;
temp_str,temp_char : string;
begin
_ret := true;
if length(farsidate) <> 8 then
begin
dateok := false;
exit;
end;
if (farsidate = ' / / ') or (farsidate = ' ') then
begin
dateok := true;
exit;
end;
for i:=1 to 8 do
begin
temp_char := copy(farsidate,i,1);
if temp_char = ' ' then temp_char := '0';
temp_str := temp_str + temp_char;
end;
farsidate := temp_str;
_ss := strtoint(copy(farsidate,1,2));
_mm := strtoint(copy(farsidate,4,2));
_rr := strtoint(copy(farsidate,7,2));
if (_ss > 99) or (_ss < 50) then
_ret := false;
if (_mm > 12) or (_mm < 1) then
_ret := false;
if (_rr > 31) or (_rr < 1) then
_ret := false;
if (_mm >= 7) and (_mm <= 12) then
if _rr > 30 then
_ret := false;
if not _ret then showmessage('تاریخ صحیح را وارد نمایید ');
dateok:=_ret;
end;
nasr
پنج شنبه 08 مرداد 1383, 12:32 عصر
سلام
procedure TForm1.Button1Click(Sender: TObject);
var
yy,mm,dd,tar : string;
a : integer;
begin
try
yy := (copy(edit1.text,0,2));
mm := (copy(edit1.text,4,2));
dd := (copy(edit1.text,7,2));
tar := yy+mm+dd;
a := strtoint(tar);
tar := yy+'/'+mm+'/'+dd;
if ((strtoint(mm)>12) or (strtoint(mm)<1) or (strtoint(dd)>31) or (strtoint(dd)<1)) then
showmessage(' Error 1 ')
except
ShowMessage('Error 2 ');
end;
end;موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.