function TFormMain.GetServerTime2: TDateTime; var i,j,y,m,d:integer; vName,vTemp:string; vM1,vM2:TDateTime; vHttp:TIdHTTP; vText:TStrings; begin Memo1.Lines.Clear; Memo2.Lines.Clear; Result:=0; if not NetIsConnected then Exit; vM1:=Now; gPageLoaded3:=False; vText:=TStringList.Create; try
vText.Text:=IdHTTP1.Get('http://time.bj.cn/'); for i:=0 to vText.Count -1 do begin vTemp:= vText[i]; if Pos('class="STYLE1">',vTemp)>0 then begin vTemp:=Copy(vTemp,Pos('class="STYLE1">',vTemp)+15,Length(vTemp)); vTemp:=Copy(vTemp,1,Pos('星',vTemp)-1); y:=StrToInt(Copy(vTemp,1,Pos('年',vTemp)-1)); vTemp:=Copy(vTemp,Pos('年',vTemp)+2,Length(vTemp)); m:=StrToInt(Copy(vTemp,1,Pos('月',vTemp)-1)); vTemp:=Copy(vTemp,Pos('月',vTemp)+2,Length(vTemp)); d:=StrToInt(Copy(vTemp,1,Pos('日',vTemp)-1)); Result:=EncodeDate(y,m,d); Exit; end; end; except Exit; end; end;
function TFormMain.GetServerTime2: TDateTime; var i,j,y,m,d:integer; vName,vTemp:string; vM1,vM2:TDateTime; vHttp:TIdHTTP; vText:TStrings; begin Memo1.Lines.Clear; Memo2.Lines.Clear; Result:=0; if not NetIsConnected then Exit; vM1:=Now; gPageLoaded3:=False; vText:=TStringList.Create; try
vText.Text:=IdHTTP1.Get('http://time.bj.cn/'); for i:=0 to vText.Count -1 do begin vTemp:= vText[i]; if Pos('class="STYLE1">',vTemp)>0 then begin vTemp:=Copy(vTemp,Pos('class="STYLE1">',vTemp)+15,Length(vTemp)); vTemp:=Copy(vTemp,1,Pos('星',vTemp)-1); y:=StrToInt(Copy(vTemp,1,Pos('年',vTemp)-1)); vTemp:=Copy(vTemp,Pos('年',vTemp)+2,Length(vTemp)); m:=StrToInt(Copy(vTemp,1,Pos('月',vTemp)-1)); vTemp:=Copy(vTemp,Pos('月',vTemp)+2,Length(vTemp)); d:=StrToInt(Copy(vTemp,1,Pos('日',vTemp)-1)); Result:=EncodeDate(y,m,d); Exit; end; end; except Exit; end; end;
你分析出这个显示的时间有什么用?
function TMain_F.CheckRegTime(RegTimeS:string) : Boolean;
var
Idhtp : TIdHTTP;
Htm : string;
TimeInt : Int64;
NetTime,RegTime : TDateTime;
Settings: TFormatSettings;
begin
Idhtp := TIdHTTP.Create(nil);
try
Htm := Idhtp.Get('http://open.baidu.com/app?module=beijingtime');
except
Htm := '';
end;
if Htm = '' then
begin
Result := False;
end else
begin
try
//网络时间
Htm := Copy(Htm, AnsiPos('time":',Htm)+Length('time":'), MaxInt);
Htm := Copy(Htm, 1, Pos('}',Htm)-1);
TimeInt := StrToInt64(Htm);
TimeInt := TimeInt div 1000;
NetTime := UnixToDateTime(TimeInt);
NetTime := IncHour(NetTime,8);
NetTime := Int(NetTime);
//注册时间
GetLocaleFormatSettings(GetUserDefaultLCID, Settings);
Settings.DateSeparator := '-';
Settings.TimeSeparator := ':';
Settings.ShortDateFormat := 'yyyy-mm-dd';
Settings.ShortTimeFormat := 'hh:nn:ss';
RegTime := StrToDate(RegTimeS,Settings);
//对比
if NetTime > RegTime then
begin
Result := False;
end else
begin
Result := True;
end;
except
Result := False;
end;
end;
Idhtp.Free;
end;
var
Session, HttpFile: HINTERNET;
szSizeBuffer: Pointer;
dwLengthSizeBuffer: DWord;
dwReserved: DWord;
dwFileSize: DWord;
dwBytesRead: DWord;
Contents: PAnsiChar;
vName,vTemp:string;
begin
Memo1.Lines.Clear;
Session := InternetOpen('', 0, nil, nil, 0); ///初始化WININET.DLL
HttpFile := InternetOpenUrl(Session, PChar('http://www.beijingshijian.net/'), nil, 0, 0, 0); //连接服务器并读取数据
dwLengthSizeBuffer := 1024;
HttpQueryInfo(HttpFile, 5, szSizeBuffer, dwLengthSizeBuffer, dwReserved); //得到页面信息 Contents:=SysGetMem(dwFileSize); //开辟内存 InternetReadFile(HttpFile, Contents, dwFileSize, dwBytesRead); //读取文件
InternetCloseHandle(HttpFile); //释放HttpFile资源
InternetCloseHandle(Session); //释放Session资源
Memo1.Lines.Text := UTF8Decode(StrPas(Contents));
try vName:=GetStr(Memo1.Lines.GetText,'</b><a id="t1">','<strong>年</strong>')+'年';
vTemp:=GetStr(Memo1.Lines.GetText,'<strong>年</strong>',' 星期');
vTemp:=Trim(vName+ vTemp);
vTemp:=StringReplace(vTemp,'年','-',[]);
vTemp:=StringReplace(vTemp,'月','-',[]);
vTemp:=StringReplace(vTemp,'日','',[]);
Result:=StrToDate(vTemp);
except
end;
Finalize(Contents); //释放
end;
var
i,j,y,m,d:integer;
vName,vTemp:string;
vM1,vM2:TDateTime;
vHttp:TIdHTTP;
vText:TStrings;
begin
Memo1.Lines.Clear;
Memo2.Lines.Clear;
Result:=0;
if not NetIsConnected then
Exit;
vM1:=Now;
gPageLoaded3:=False;
vText:=TStringList.Create;
try
vText.Text:=IdHTTP1.Get('http://time.bj.cn/');
for i:=0 to vText.Count -1 do
begin
vTemp:= vText[i];
if Pos('class="STYLE1">',vTemp)>0 then
begin
vTemp:=Copy(vTemp,Pos('class="STYLE1">',vTemp)+15,Length(vTemp));
vTemp:=Copy(vTemp,1,Pos('星',vTemp)-1);
y:=StrToInt(Copy(vTemp,1,Pos('年',vTemp)-1)); vTemp:=Copy(vTemp,Pos('年',vTemp)+2,Length(vTemp));
m:=StrToInt(Copy(vTemp,1,Pos('月',vTemp)-1)); vTemp:=Copy(vTemp,Pos('月',vTemp)+2,Length(vTemp));
d:=StrToInt(Copy(vTemp,1,Pos('日',vTemp)-1)); Result:=EncodeDate(y,m,d);
Exit;
end;
end;
except
Exit;
end;
end;
var
i,j,y,m,d:integer;
vName,vTemp:string;
vM1,vM2:TDateTime;
vHttp:TIdHTTP;
vText:TStrings;
begin
Memo1.Lines.Clear;
Memo2.Lines.Clear;
Result:=0;
if not NetIsConnected then
Exit;
vM1:=Now;
gPageLoaded3:=False;
vText:=TStringList.Create;
try
vText.Text:=IdHTTP1.Get('http://time.bj.cn/');
for i:=0 to vText.Count -1 do
begin
vTemp:= vText[i];
if Pos('class="STYLE1">',vTemp)>0 then
begin
vTemp:=Copy(vTemp,Pos('class="STYLE1">',vTemp)+15,Length(vTemp));
vTemp:=Copy(vTemp,1,Pos('星',vTemp)-1);
y:=StrToInt(Copy(vTemp,1,Pos('年',vTemp)-1)); vTemp:=Copy(vTemp,Pos('年',vTemp)+2,Length(vTemp));
m:=StrToInt(Copy(vTemp,1,Pos('月',vTemp)-1)); vTemp:=Copy(vTemp,Pos('月',vTemp)+2,Length(vTemp));
d:=StrToInt(Copy(vTemp,1,Pos('日',vTemp)-1)); Result:=EncodeDate(y,m,d);
Exit;
end;
end;
except
Exit;
end;
end;