|
|
Re: Zeit aus dem Internet holen- #23634 in section [740741] |
Sec: |
(1) Allgemeines |
Von: |
Harro Schippan |
An: |
Tom Knauf |
Am/Um: |
17.07.2017 08:53:27 |
Hallo Tom, ich habe jetzt dieses Programm benutzt. Das hat den Vorteil, ich kann im Grunde jede Interseite benutzen, die eine Zeit liefert. Brauche nur den STREXTRACT anpassen, falls diese Seite mal nicht mehr funktioniert. Der unten stehende Programmcode kann einfach kopiert und ausgeführt werden. Danke und viele Grüße Hallo ******************************************************************** CLEAR GetInternetTime() ******************************************************************** FUNCTION GetInternetTime ******************************************************************** * URL LOCAL lcURL lcURL = 'http://www.unixtimestamp.com/' ******************************************************************** * Load the URL first, to force refresh LOCAL loIE as "InternetExplorer.Application" loIe = CREATEOBJECT("InternetExplorer.Application") loIe.Navigate(lcUrl) ******************************************************************** * wait until page is loaded: DO WHILE loIE.Busy ENDDO DO WHILE loIE.ReadyState <> 4 ENDDO loIe = NULL ******************************************************************** LOCAL loHTTP as "Microsoft.XMLHTTP" loHttp = CREATEOBJECT("Microsoft.XMLHTTP") loHttp.Open("POST", lcURL, .F.) loHttp.send() LOCAL lcResponse lcResponse = loHttp.responseText IF loHttp.status > 300 && 'Response is OK MESSAGEBOX("Could not obtain the date and time information from the web. Please try again later.") RETURN ENDIF ******************************************************************** * Extract UNIX Timestamp from Page lnTimeStamp = INT(VAL(STREXTRACT(lcResponse, 'class="text-danger">', ' '))) ? REPLICATE("*",80) ltFoxTime = DATETIME(1970, 1, 1, 0, 0, 0) + lnTimeStamp ltLocal = Sommerzeit2(DATETIME() ) ? "Aktuelle Zeit", ltFoxTime ? "RechnerZeit: ", ltLocal ? "Differenz: ", ALLTRIM(TRANSFORM(ltFoxTime-ltLocal )) ? REPLICATE("*",80) RETURN ******************************************************************** ******************************************************************** FUNCTION Sommerzeit2 (OZeit) * Zeitanpassung für Sommer- Winterzeit. Die übergebene Zeit wird auf UTC umgestellt SET FDOW TO 2 wPrüfDatum = oZeit wNeuDatum = wPrüfDatum ***************************************************** * Beginn Sommerzeit wSuchjahr = YEAR(wPrüfDatum ) wDatum = DATE(wSuchjahr,3,31) wWochentag = DOW(DATE(wSuchjahr,3,31),2) wBegSommerzeit = wDatum-wWochentag ***************************************************** * Beginn Winterzeit wSuchjahr = YEAR(wPrüfDatum ) wDatum = DATE(wSuchjahr,10,31) wWochentag = DOW(DATE(wSuchjahr,10,31),2) wBegWinterzeit = wDatum-wWochentag ***************************************************** DO CASE CASE wPrüfDatum < wBegSommerzeit && "alte Winterzeit" wNeuDatum = wNeuDatum - 60*60 CASE wPrüfDatum >= wBegWinterzeit && "neue Winterzeit" wNeuDatum = wNeuDatum - 60*60 CASE BETWEEN(DATE(YEAR(wPrüfDatum),MONTH(wPrüfDatum),DAY(wPrüfDatum)),wBegSommerzeit ,wBegWinterzeit-1 ) *? "Sommerzeit" wNeuDatum = wNeuDatum - 120*60 OTHERWISE ? "oh Weh, da fehlt was" ? wPrüfDatum,wBegSommerzeit ,wBegWinterzeit-1 ? ENDCASE RETURN wNeuDatum ******************************************************************** ********************************************************************
|
|
|
|