TKSoft-Online

Berechnung von Kalenderwochen (DIN 1355) PDF Drucken E-Mail
( 3 Votes )
MS-Access Bsp. DB's - Bsp. Downloads Datum und Zeit
  
Freitag, den 04. Januar 2008 um 01:00 Uhr

Problemstellung:

immer wieder ein Thema ist im Forum der Umgang mit Kalenderwochen.
Ermittlung der Kalenderwoche für Datum nach DIN 1355 und Ermittlung eines Datums und
Wochentages aus einer Kalenderwoche.

Voraussetzungen:

Das Bsp ist unter A97,A00, AXP, A03 lauffähig, unter A07 wurde es nicht getestet.

Funktionsweise:

Die Errechnung der Kalenderwoche (KW) aus einem Datum geht ja noch.

Wobei die pure Formatierung eines Datums in die KW auch Fehler bei Berechnung von
Jahreswechseln beinhaltet.
Syntax:

Dim varKW As Variant
 
    varKW = Format("DeinDatum", "ww", vbMonday)
 
    
'oder
 
    varKW = Format("DeinDatum", "ww/yyyy", vbMonday)


Genauere Ergebnisse erhält man dann schon mit speziellen Funktionen:

Function Kalenderwoche(XDatum As Variant, fModus As BooleanAs String
Dim 
x, y, z
    Kalenderwoche = ""
If Not IsDate(XDatum) Then Kalenderwoche = "": Exit Function
    XDatum = CDate
(XDatum)
    x = Year(XDatum)
    z = Format(XDatum, "ww", vbMonday, vbFirstFourDays)
    y = Int((XDatum - DateSerial(Year(XDatum), 1, 1) + _
        ((WeekDay(DateSerial(Year(XDatum), 1, 1)) + 1) 
Mod 
7) - 3) / 7) + 1
 
    
If y = 0 Then
        z = Format(DateSerial(x - 1, 12, 31), "ww", vbMonday, vbFirstFourDays)
        
If z >= 52 Then 
x = x - 1
    
ElseIf y > 52 And (WeekDay(DateSerial(x, 12, 31)) - 1) Mod 7 <= 3 Then
        If 
Format(XDatum + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then z = 1
        
If z = 1 Then 
x = x + 1
    
End If
    If fModus = True Then
        Kalenderwoche = Right("00" & z, 2) & "/" & Right("0000" & x, 4)
    
Else
        Kalenderwoche = Right("00" & z, 2)
    
End If
End Function

 

In dieser Funktion werden Jahreswechsel richtig berechnet.
Folgende Argumente müssen übergeben werden:

XDatum= ein formatiertes Datum (sonst gibt die Funktion "" zurück)
boolModus True =Format "ww/jjjj", False =Format "ww"

Syntax:

Dim Testdatum as Date
Dim strKW as String
Testdatum = #12/31/2002#   ' Test mit 31.12.2002
strKW = Kalenderwoche(Testdatum, True)

Jetzt kommen wir aber zur rekursiven Berechnung, sprich ein Datum aus einer KW zu ermitteln.
Drei Argumente werden benötigt, die KW, das Jahr und den Wochentag.
Die Funktion "GetDateFromWeek" gibt dann das Datum zurück.
Listing s. Bsp-DB

Argumente:

nWeek = KW z.B 50
nDayOfWeek = Wochentag z.B. 1=Montag
nYear =Jahr z.B. 2003

Jetzt kann man noch alle Tage der gewählen KW in einem Listenfeld anzeigen lassen. (s. Bsp-DB)
Das Füllen des Listenfeldes soll hier aber jetzt nicht näher beschrieben werden,
da dies ein extra Thema ergibt.

Download nur für registrierte User

Berechnung von Kalenderwochen (DIN 1355)

Berechnung von Kalenderwochen (DIN 1355)
für A97-A03 , A07 nicht getestet

Die Zip-Datei enthält ein Version für A97 und eine ab A00

Diese Kategorie erfordert eine Registrierung um Daten downloaden zu können.
Sollten Sie bereits registriert sein, so melden Sie sich bitte an.




Erstellt am
Dateigröße
Downloads
03.01.2008
54.06 KB
4205

 

Downloads in dieser Kategorie

MS-Access Datum und Zeit

MS-Access Datum und Zeit

 Seite: 1


DatumKlicks
Total19388
Di. 221
Mo. 2110
So. 206
Sa. 194
Fr. 1812
Do. 176
Mi. 1610
Aktualisiert ( Dienstag, den 25. Januar 2011 um 11:45 Uhr )
 

Kommentare  

 
0 # Mag 2010-01-18 15:14
Hallo,

super Danke für den Tipp, doch irgendwas mache ich falsch.

Bei
Debug.Print Kalenderwoche(2 010-01-18, False) gibt keine Ausgabe, sollte aber KW 03 sein.

Die Funktion habe ich als Modul eingefügt.

Ich brauche nur die KW, also False.

Vielen Dank im Voraus.

MAG
Antworten | Antworten mit Zitat | Zitieren
 
 
0 # TommyK 2010-01-18 19:10
Hallo MAG,

schreibe:
Code:Debug.Print Kalenderwoche("18.01.2010", False)
Dann erhälst Du als Ergebnis "03"

Gruß Tommy
Antworten | Antworten mit Zitat | Zitieren
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173413 Downloads