HOME

An dieser Stelle finden Sie einige Tips und Tricks speziell für VB. Für manche ist dies "Schnee von Gestern" für andere können sie das eine oder andere Problem lösen.

Sollten Sie ebenfalls noch Tricks auf Lager haben und der Ansicht sind diese müssten unbedingt hier erscheinen, wäre ich Ihnen dankbar, wenn Sie mir eine Mail schicken würden mit einer kurzen Beschreibung und evtl. Sourcecode.

Es muss sich hierbei nicht ausschlieslich um VB handeln, denn wir möchten auch noch andere "Tips und Tricks"-Seiten anbieten. Sie sollten lediglich aus dem Gebiet der EDV sein.

 

Inhaltsverzeichnis:

  1. Windows 95, Windows NT oder was ?

  2. Das höherwerige und niederwertige Byte

  3. Feiertage


Windows 95, Windows NT oder was ?

Es ist oftmals nicht unwesentlich zu wissen, auf welcher Plattform meine Anwendung gerade abläuft. GetPlatformID findet es heraus.

Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
End Type

Declare Function GetVersionEx Lib "KERNEL32" Alias "GetVersionExA"  _
    (ByRef lpVersionInformation As OSVERSIONINFO) As Long

Function GetPlatformID() As String
    Dim luOSInfo As OSVERSIONINFO
    Dim llReturnValue As Long
    
    llReturnValue = GetVersionEx(luOSInfo)
    luOSInfo.dwOSVersionInfoSize = 148
    luOSInfo.szCSDVersion = Space(128)
    llReturnValue = GetVersionEx(luOSInfo)
    
    Select Case luOSInfo.dwPlatformId
        Case 1
            GetPlatformID = "WIN95"
        Case 2
            GetPlatformID = "WINNT"
        Case Else
            GetPlatformID = "WIN32"
    End Select

End Function

Inhaltsverzeichnis


Das höherwerige und niederwertige Byte

Diese Funktionen liefern das höherwertige (HiByte) und das niederwertige (LoByte) Byte

Public Function HiByte(ByVal piParam As Integer)
    HiByte = piParam \ &H100 And &HFF&
End Function

Public Function LoByte(ByVal piParam As Integer)
    LoByte = piParam And &HFF&
End Function

Inhaltsverzeichnis


Feiertage

Wer schon einmal einen Kalender programmieren mußte weiß, daß hierzu auch die Abbildung der Feiertage nützlich sein kann. Bei solchen, die auf ein festes Datum fallen (z.B. der Maifeiertag am 1.5.) ist es kein Problem und die anderen leiten sich allesamt vom Ostersonntag ab. Die folgende Funktion liefert den Ostersonntag bis in das Jahr 2099 (das sollte wohl auch reichen).

Public Function GetOstersonntag(ByVal psJahr As Single) As Date
    Dim lsYearPart As Single
    Dim lsMondPhase As Single
    Dim lsDayPart As Single
    Dim lsDummy1 As Single
    Dim lsDummy2 As Single
    Dim lsOsterTag As Single
    Dim lsOsterMonat As Single

    lsYearPart = psJahr Mod 19
    lsMondPhase = psJahr Mod 4
    lsDayPart = psJahr Mod 7

    lsDummy1 = (19 * lsYearPart + 24) Mod 30
    lsDummy2 = (2 * lsMondPhase + 4 * lsDayPart + 6 * lsDummy1 + 5) Mod 7
    lsOsterTag = 22 + lsDummy1 + lsDummy2
    lsOsterMonat = 3

    If lsOsterTag > 31 Then
        lsOsterTag = lsDummy1 + lsDummy2 - 9
        lsOsterMonat = 4
    End If

    If lsOsterTag = 26 And lsOsterMonat = 4 Then
        lsOsterTag = 19
    End If

    If lsOsterTag = 25 _
        And lsOsterMonat = 4 _
            And lsDummy1 = 28 _
                And lsDummy2 = 6 _
                    And lsYearPart > 10 Then
        lsOsterTag = 18
    End If
    GetOstersonntag = CDate(lsOsterTag & "." & lsOsterMonat & "." & psJahr)
End Function

Inhaltsverzeichnis


last modified 28.09.99, Burre-Computerservice