deutschsprachige FoxPro User Group
Forum View
Home
  
  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 
********************************************************************
********************************************************************





Harro Schippan   14.07.2017 15:24
Tom Knauf  14.07.2017 17:13
Harro Schippan  14.07.2017 17:36
Harro Schippan  17.07.2017 08:53
Harro Schippan  17.07.2017 08:57
Matthias Kahlert  17.07.2017 20:46
Harro Schippan  18.07.2017 08:32
Thomas Geissler  18.07.2017 09:25
Harro Schippan  18.07.2017 11:01
Thomas Geissler  18.07.2017 12:45
Harro Schippan  18.07.2017 13:39
Matthias Kahlert  25.07.2017 01:19
Harro Schippan  25.07.2017 10:02
  
zurück zum Forum