Français
Forum

Zeitzone auslesen ?

 
- page 1 -


Besteht qui Possibilité, den String dans qui Windows-Zeitzone auszulesen ?
dans diesem le cas: "Amsterdam, Berlin, Bern usw..." - siehe Bild
si oui, kleine Aider wäre gentil

93 kB
Hochgeladen:22.09.2008
Downloadcounter116
Download
 
22.09.2008  
 



 
- page 1 -



Jörg
Sellmeyer
avec cela sollte Dir erstmal geholfen son.
KompilierenMarqueSéparation
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.09.2008  
 



Läuft sogar avec XP-Script (qui Effectuer-Button)!
 
22.09.2008  
 



@Grossen Dank - Jörg

qui DEF J'ai eu déjà, seulement pour cela "Drumherum" hätte je encore quelques Zeit gebraucht !
 
22.09.2008  
 




Jörg
Sellmeyer
Ist mais bestimmt encore pas korrekt. Basiert hierauf:



typedef struct _TIME_ZONE_INFORMATION { // tzi
LONG Bias;
WCHAR StandardName[ 32 ];
SYSTEMTIME StandardDate;
LONG StandardBias;
WCHAR DaylightName[ 32 ];
SYSTEMTIME DaylightDate;
LONG DaylightBias;
} TIME_ZONE_INFORMATION;


cet WCHAR doit peut-être. anders incorporé werde et, comment déjà erwähnt, qui Strukturen manquer. mais es funktioniert erstmal. Allerdings gibt es Westeuropäische Normalzeit aus. Müßte mais eigentlich Sommerzeit ausspucken. peux on mais zur Not par den Rückgabewert qui Funktion ermitteln (siehe Code dessus)
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.09.2008  
 




Gerhard
Praher
Alle verfügbaren Zeitzonen findest du aussi dans qui Registry.

et zwar sous:

HKEY_LOCAL_MACHINESoftwareMircorsoftWindows NTCurrentVersionTime Zones

Salut
Gerhard
 
Windows XP Pro, SP3
Jetzt: XProfan 11
Was ich liebe sind 3 "F": meine Familie, meine Firma, meine Freizeit.
22.09.2008  
 




Dieter
Zornow
So wird aussi qui Sommerzeit angezeigt, vous steht dans Daylightname, mais je crois seulement, si qui User automatische Zeitumstellung abgehakt hat. chez Daylight date suis je Je ne sûrement welches date eingefügt volonté muss. j'ai la fois den Beginn qui Sommerzeit eingefügt
KompilierenMarqueSéparation
def GetTimeZoneInformation(1) !"KERNEL32", "GetTimeZoneInformation"
def GetSystemTime(1) ! "Kernel32","GetSystemTime"
struct TIME_ZONE_INFORMATION = Bias&,
StandardName$(63),
StandardDate#(16),
StandardBias&,
DaylightName$(63),
DaylightDate#(16),
DaylightBias&
declare TimeZone#,systime#
dim systime#,16
dim TimeZone#, TIME_ZONE_INFORMATION
clear timezone#
cls
GetSystemTime(systime#)
timezone#.StandardDate# =
WORD(systime#,0),
WORD(systime#,2),
WORD(systime#,4),
WORD(systime#,6),
WORD(systime#,8),
WORD(systime#,10),
WORD(systime#,12),
WORD(systime#,14)
timezone#.DaylightDate#  =
2008,
3,
0,
30,
2,
0,
0,
0
Print GetTimeZoneInformation(TimeZone#)

with TimeZone#

    print .Bias&
    print .StandardName$
    Print Translate$(Char$(TimeZone#,4,63),"z","")
    print .StandardDate#
    print .StandardBias&
    print .DaylightName$
    print Translate$(Char$(TimeZone#,87,63),"z","")
    print .DaylightDate#
    print .DaylightBias&

endwith

dispose TimeZone#,systime#
waitinput
/../funktionsreferenzen/XProfan/end/'>end
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
22.09.2008  
 



@Dieter + Jörg

merci à Beide

Mir ging es dans erster ligne number um:

.DaylightBias&
Translate$(Char$(TimeZone#,87,63),"z",»)

...et cela habe je maintenant
 
22.09.2008  
 




RGH
... et ici qui directe Übersetzung des VisualBasic-Codes pour XProfan. là XProfan (encore) quelque chose sparsam avec eingebauten Datumsroutinen ist, habe je quelques Hilfsfunktiionen hinzugefügt et quatre Zeilen Hauptprogramm qui qui Procédure Beispiel() appel.

attention: qui Code ist à cause de qui verschachtelten Strukturen seulement ab XProfan 11 courir! il zeigt mais très joli, comment Strukturen iun Strukturen trop verwenden sommes. (comment es avant XProfan 11ging, montrer oui qui Posts qui Vorposter.)
KompilierenMarqueSéparation
// -------------------------------------------------------------------------------------
// Dieser Codeausschnitt ermittelt verschiedene Zeitzoneninformationen und bedient sich
// dabei des Win32-API. Folgende Funktionen stehen zur Verfügung:
// -------------------------------------------------------------------------------------
// Funktion:               Beschreibung:
// -------------------------------------------------------------------------------------
// DaylightSavingExists    Ermittelt, ob die Zeitzone (des Systems) eine Sommerzeit hat
// DaylightSaving          Ermittelt, ob Sommerzeit besteht
// DaylightBias            Ermittelt die Sommerzeit-Zeitverschiebung gegenüber GMT-Uhrzeit in Minuten
// StandardBias            Ermittelt die die Standardzeit-Zeitverschiebung gegenüber GMT-Uhrzeit in Minuten
// CurrentBias             Ermittelt die aktuelle Zeitverschiebung gegenüber GMT-Uhrzeit in Minuten
// DaylightName            Ermittelt den Klartextnamen der Sommerzeit-Zeitzone
// StandardName            Ermittelt den Klartextnamen der Standardzeit-Zeitzone
// GMTTime                 Ermittelt die aktuelle GMT-Uhrzeit (inkl. Datum)
// FirstDateDaylight       Ermittelt das Startdatum der Sommerzeit
// FirstDateStandard       Ermittelt das Startdatum der Standardzeit
// -------------------------------------------------------------------------------------
Def &TIME_ZONE_ID_DAYLIGHT 2
Struct SYSTEMTIME =
wYear%,
wMonth%,
wDayOfWeek%,
wDay%,
wHour%,
wMinute%,
wSecond%,
wMilliseconds%
Struct TIME_ZONE_INFORMATION =
Bias&,                     Basis-Zeitverschiebung in Minuten
StandardName#(64),         Name der Normalzeit-Zeitzone
StandardDate!SYSTEMTIME,   Beginn der Standardzeit
StandardBias&,             Zusätzliche Zeitverschiebung der Standardzeit
DaylightName#(64),         Name der Sommerzeit-Zeitzone
DaylightDate!SYSTEMTIME,   Beginn der Sommerzeit
DaylightBias&               Zusätzliche Zeitverschiebung der Sommerzeit
Def GetTimeZoneInformation(1) !"kernel32", "GetTimeZoneInformation"
--------------- Datum-Hilfsfunktionen, die es in XProfan nicht gibt----------------------------

Proc DTFormat

    gibt den Datumsteil von Data# als String zurück
    Parameters Data#
    Return Format$("00",Data#.wDay%)+"."+Format$("00",Data#.wMonth%)+"."+Format$("00",Data#.wYear%)+", "
    + Format$("00",Data#.wHour%)+":"+Format$("00",Data#.wMinute%)+":"+Format$("00",Data#.wSecond%)+" Uhr"

EndProc

Proc WeekDay

    ermittelt den Wochentag des Datums
    Parameters Year%, Month%, Day%

    If (Month% < 3)

        Month% = Month% + 12
        Year% = Year% - 1

    EndIf

    Return (Day% + Int((13 * Month% - 27) / 5) + Year% + Int(Year% / 4) - Int(Year% / 100) + Int(Year% / 400)) MOD 7

EndProc

Proc LastDay

    Ermittelt den letzten Tag des Monats im angegebenen Jahr
    Parameters Year%, Month%
    Declare Last%

    Select Month%

        CaseOf 1,3,5,7,8,10,12

        Last% = 31

        CaseOf 2

        Last% = 28 + ((Year% mod 4) = 0) - ((Year% mod 100) = 0) + ((Year% mod 400) = 0)
        OtherWise
        Last% = 30

    EndSelect

    Return Last%

EndProc

Proc DateAddMinutes

    Fügt dem DatumZeit-Objekt Date# die Minuten hinzu bzw. zieht sie ab
    Parameters Data#, Minutes%

    With Data#

        .wMinute% = .wMinute% + Minutes% mod 60
        .wHour% = .wHour% + Minutes%  60

        if .wHour% > 23

            .wHour% = .wHour% - 24
            .wDay% = .wDay% + 1

        endif

        if .wDay% > LastDay(.wYear%,.wMonth%)

            .wDay% = .wDay% - LastDay(.wYear%,.wMonth%)
            .wMonth% = .wMonth% + 1

        endif

        if .wMonth% > 12

            .wMonth% = .wMonth% - 12
            .wYear% = .wYear% + 1

        endif

        if .wHour% < 0

            .wHour% = .wHour% + 24
            .wDay% = .wDay% - 1

        endif

        if .wDay% < 1

            .wMonth% = .wMonth% - 1
            .wDay% = .wDay% + LastDay(.wYear%,.wMonth%)

        endif

        if .wMonth% < 1

            .wMonth% = .wMonth% + 12
            .wYear% = .wYear% - 1

        endif

    EndWith

    Return Data#

EndProc

-----------------------------------------------------------------------------------------

PROC Beispiel

    Print "Aktuelle Zeit"
    Print "-------------"
    Print "Aktuelle Lokalzeit: "; Date$(0); ", "; Time$(0); ":"; Left$(Time$(1),2); " Uhr"
    Print "Aktuelle GMT-Zeit: "; DTFormat(GMTTime())
    Print "Sommerzeit: "; If(DaylightSaving(), "Ja", "Nein")
    Print
    Print "Standardzeit"
    Print "------------"
    Print "Name der Standardzeit: "; StandardName()
    Print "Beginn der Standardzeit: "; FirstDateStandard(0)
    Print "Zeitverschiebung: "; "GMT" + If(StandardBias() < 0, "", "+") + Str$(Int(StandardBias())) + " Minuten"
    Print
    Print "Sommerzeit"
    Print "----------"

    If DaylightSavingExists()

        Print "Name der Sommerzeit: "; DaylightName()
        Print "Beginn der Sommerzeit: "; FirstDateDaylight(0)
        Print "Zeitverschiebung: "; "GMT" + If(DaylightBias() < 0, "", "+") + Str$(Int(DaylightBias())) + " Minuten"

    Else

        Print "Zeitzone hat keine Sommerzeit!"

    EndIf

EndProc

Proc DaylightSavingExists

    // Gibt zurück, ob die Zeitzone eine Sommerzeit hat.
    Var udtTZI# = New(TIME_ZONE_INFORMATION)
    GetTimeZoneInformation(udtTZI#)
    Return (udtTZI#.DaylightDate!wMonth% <> 0)

EndProc

Proc DaylightSaving

    // Gibt zurück, ob Sommerzeit besteht.
    Var udtTZI# = New(TIME_ZONE_INFORMATION)
    Var RetVal& = GetTimeZoneInformation(udtTZI#)
    Return (RetVal& = &TIME_ZONE_ID_DAYLIGHT)

EndProc

Proc StandardBias

    // Gibt die Standardzeit-Zeitverschiebung
    // gegenüber GMT-Uhrzeit in Minuten zurück.
    Var udtTZI# = New(TIME_ZONE_INFORMATION)
    GetTimeZoneInformation(udtTZI#)
    Return -(udtTZI#.Bias& + udtTZI#.StandardBias&)

EndProc

Proc DaylightBias

    // Gibt die Sommerzeit-Zeitverschiebung
    // gegenüber GMT-Uhrzeit in Minuten zurück.
    Var udtTZI# = New(TIME_ZONE_INFORMATION)
    GetTimeZoneInformation(udtTZI#)
    Return -(udtTZI#.Bias& + udtTZI#.DaylightBias&)

EndProc

Proc CurrentBias

    // Gibt die aktuelle Zeitverschiebung
    // gegenüber GMT-Uhrzeit in Minuten zurück.
    Var udtTZI# = New(TIME_ZONE_INFORMATION)
    Var RetVal& = 0
    RetVal& = GetTimeZoneInformation(udtTZI#)

    With udtTZI#

        If RetVal& = &TIME_ZONE_ID_DAYLIGHT

            RetVal& = -(.Bias& + .DaylightBias&)

        Else

            RetVal& = -(.Bias& + .StandardBias&)

        EndIf

    EndWith

    Return RetVal&

EndProc

Proc DaylightName

    // Gibt den Klartextnamen der Sommerzeit-Zeitzone zurück.
    Var udtTZI# = New(TIME_ZONE_INFORMATION)
    GetTimeZoneInformation(udtTZI#)
    Return Translate$(Char$(udtTZI#,88,63),"z","")

EndProc

Proc StandardName

    // Gibt den Klartextnamen der Standardzeit-Zeitzone zurück.
    Var udtTZI# = new(TIME_ZONE_INFORMATION)
    GetTimeZoneInformation(udtTZI#)
    Return Translate$(Char$(udtTZI#,4,63),"z","")

EndProc

Proc GMTTime

    // Gibt die aktuelle GMT-Uhrzeit (inkl. Datum) zurück.
    GMTTime = DateAdd("n", -CurrentBias(), Now)
    Var Date# = new(SYSTEMTIME)
    Var Bias% = CurrentBias()

    With Date#

        .wYear% = Val(Left$(Date$(3),4))
        .wMonth% = Val(Mid$(Date$(3),5,2))
        .wDay% = Val(Right$(Date$(3),2))
        .wHour% = Val(Left$(Time$(0),2))
        .wMinute% = Val(Right$(Time$(0),2))
        .wSecond% = Val(Left$(Time$(1),2))

    EndWith

    Return DateAddMinutes(Date#,Bias%)

EndProc

Proc FirstDateDaylight

    // Gibt das Startdatum der Sommerzeit zurück.
    Parameters InYear%
    Var udtTZI# = new(TIME_ZONE_INFORMATION)
    Var Date# = new(SYSTEMTIME)
    Case InYear% = 0 : InYear% = Val(Left$(Date$(3),4))
    GetTimeZoneInformation(udtTZI#)
    In .wMonth steht der Monat der Umstellung
    In .wDay steht die Woche der Umstellung

    With udtTZI#

        Date#.wYear% = .DaylightDate!wYear%
        Date#.wMonth% = .DaylightDate!wMonth%
        Date#.wDayOfWeek% = .DaylightDate!wDayOfWeek%
        Date#.wDay% = .DaylightDate!wDay%
        Date#.wHour% = .DaylightDate!wHour%
        Date#.wMinute% = .DaylightDate!wMinute%
        Date#.wSecond% = .DaylightDate!wSecond%
        Date#.wMilliseconds% = .DaylightDate!wMilliseconds%

    EndWith

    Return GetTimezoneChangeDate(Date#, InYear%)

EndProc

Proc FirstDateStandard

    // Gibt das Startdatum der Standardzeit zurück.
    Parameters InYear%
    Var udtTZI# = new(TIME_ZONE_INFORMATION)
    Var Date# = new(SYSTEMTIME)
    Case InYear% = 0 : InYear% = Val(Left$(Date$(3),4))
    GetTimeZoneInformation(udtTZI#)
    In .wMonth steht der Monat der Umstellung
    In .wDay steht die Woche der Umstellung

    With udtTZI#

        Date#.wYear% = .StandardDate!wYear%
        Date#.wMonth% = .StandardDate!wMonth%
        Date#.wDayOfWeek% = .StandardDate!wDayOfWeek%
        Date#.wDay% = .StandardDate!wDay%
        Date#.wHour% = .StandardDate!wHour%
        Date#.wMinute% = .StandardDate!wMinute%
        Date#.wSecond% = .StandardDate!wSecond%
        Date#.wMilliseconds% = .StandardDate!wMilliseconds%

    EndWith

    Return GetTimezoneChangeDate(Date#, InYear%)

EndProc

Proc GetTimezoneChangeDate

    // In Data.wDayOfWeek wird ein Wochentag übergeben. Die Information in .wDay
    // legt fest, in welcher Woche des Monats der betroffene Tag zu ermitteln
    // ist.
    Parameters Data#, InYear%
    Var dtTemp# = new(SYSTEMTIME)
    Var lMonthFirstWeekday& = 0
    Var lMonthlastWeekday& = 0

    With Data#

        // Wochentag des ersten Tages im Monat berechnen
        lMonthFirstWeekday& = Weekday(InYear%, .wMonth%, 1)
        .wYear% = InYear%
        // Den gesuchten Tag ermitteln
        .wDay% = .wDayOfWeek% - lMonthFirstWeekday& + .wDay% * 7 + 1
        Case .wDay% > LastDay(.wMonth%) : .wDay% = .wDay% - 7

    EndWith

    Return DTFormat(Data#)

EndProc

------------
TESTPROGRAMM
-----------<
- CLS Beispiel() WaitInput Fin

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.09.2008  
 



 
- page 2 -


@Roland
c'est naturellement un "Sahnehäuptchen"

dans meinem Code habe je cela avec qui "Sommerzeit" so gelöst:
cela Tool erstellt beim Start aus dem Code de (Peter + Jörg) une temporäre Dossier.
y wird
DaylightBias&
Translate$ (Char$(TimeZone#,87,63)," z",»)

gespeichert.

Ausgelesen wird comme
KompilierenMarqueSéparation
Assign #1,config_datei$
RESET #1
INPUT #1,Z_Z$
INPUT #1,ort$
CLOSE #1
Z_Z!=VAL(Z_Z$)

IF ort$ = "Westeuropäische Sommerzeit"

    differenz! = (Z_Z!/30) ergibt 2 Stunden

ELSE

    differenz! = (Z_Z!/60) ergibt 1 Stunde

23.09.2008  
 




Dieter
Zornow
@Roland
Dein Code hat une faute beim Lecture qui GMT -Zeit dans "Proc DateAddMinutes", qui Abweichung muss toujours abgezogen volonté pas addiert, sonst erscheint un falscher Wert. Ist aussi chez Microsoft faux beschrieben. si comment chez mir Südostasiatische Normalzeit venez quoi +7 ou bien +420 entspricht ist GMT -7 ou bien - 420, gemessen à meiner Zeit., là du oui den Bias benutzt.

Siehe Anhang

Salut

Dieter

13 kB
Hochgeladen:05.10.2008
Downloadcounter61
Download
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
05.10.2008  
 



@Dieter


@Roland
Dein Code hat une faute beim Lecture qui GMT -Zeit dans "Proc DateAddMinutes"


Gottseidank, dass Du que voici écris.
j'ai mich pas getraut, den faute ici mitzuteilen et était mir aussi pas entier sûrement.
maintenant peux je weitermachen

61 kB
Kurzbeschreibung: So pourrait qui Zeit maintenant korrekt angezeigt volonté.
Hochgeladen:05.10.2008
Downloadcounter73
Download
 
05.10.2008  
 




RGH
allô, je veux mich pas avec fremden Federn schmücken: c'est pas mon Code, mais une 1:1-Umsetzung des VB-Codes. Fachliche faute habe je, so vous car drin sommes, naturellement übernommen!

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
05.10.2008  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.753 Views

Untitledvor 0 min.
E.T.25.12.2020
Uwe Lang08.08.2016
Julian Schmidt04.08.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie