Gruß
Uli
"Siegfried Hubert" <Siegfrie...@t-online.de> schrieb im Newsbeitrag
news:aq0vkk$aln$05$1...@news.t-online.com...
> Hallo Leute,
> wie kann ich prüfen, ob die Kalenderwoche eines gegebenen Datums gerade
oder
> ungerade ist?
> Die Kalenderwoche ermittele ich so:
> tmpWoche = Format(tmpDatum, "WW", vbMonday)
>
> Ich brauche aber nicht die Kalenderwoche selbst, sondern ich muss prüfen,
ob
> es eine ungerade oder gerade Woche ist.
>
> Gruß Siegfried
>
>
> Sieh mal ein paar zeilen tiefer die Frage von Häusler Bibi.
> War das gleiche Problem.
Ja, das war in einer Abfrage. Außerdem weiß ich nicht, was MOD2 ist. :-)
Ich brauche das aber im VBA-Code.
Irgendwie so: tmpWoche = Format(tmpDatum, "WW", vbMonday)
If tempWoche gerade then
...
else
...
Gruß Siegfried
Gruß
Uli
"Siegfried Hubert" <Siegfrie...@t-online.de> schrieb im Newsbeitrag
news:aq13t0$jqe$04$1...@news.t-online.com...
> Dann versuchs mal mit diesem:
> Dim KW as Integer
> KW=Format(tmpDatum, "WW", vbMonday)
> If Int(Kw/2)*2 = KW then
> 'KW ist gerade
> else
> 'KW ist nicht gerade
Ja, so komme ich weiter. Vielen Dank! :-)
Ich verstehe allerdings nicht ganz wie. :-)
Würdest Du mir bitte noch kurz erklären, wie dieses Konstrukt funktioniert:
> If Int(Kw/2)*2 = KW then
> 'KW ist gerade
Es funktioniert, aber ich verstehe nicht warum. :-)
Gruß Siegfried
Dim KW as Integer
KW=Format(tmpDatum, "WW", vbMonday)
If KW/2 = KW \2 then
'KW ist gerade
else
'KW ist nicht gerade
End if
Gruß
Felix
Gruß
Uli
"Siegfried Hubert" <Siegfrie...@t-online.de> schrieb im Newsbeitrag
news:aq178u$gnu$02$1...@news.t-online.com...
"Siegfried Hubert" <Siegfrie...@t-online.de> wrote in message
news:aq178u$gnu$02$1...@news.t-online.com...
Dann versuch's halt trotzdem mal mit Mod 2 ;-)
zB:
Dim KW as Integer
KW = Format(tmpDatum, "WW", vbMonday)
If KW Mod 2 = 0 then
'KW ist gerade
Else
'KW ist ungerade
End If
Mod X gibt den Rest zurück, der sich bei der Division einer Zahl durch X
ergibt. Im konkreten Fall gibt Mod 2 also 0 zurück, falls die Zahl durch
2 teilbar (und damit gerade) ist, andernfalls gibt Mod 2 eine 1 zurück.
HTH und ist verständlicher
Gruss
Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/FAQ/FAQStart.htm
MVP: http://mvp.support.microsoft.com
das ist Ansichtssache!
ich versteh obiges besser *bg*
Int schneidet den Nachkommateil ab. Beispiel:
5. Woche -> kw/2 = 2,5 -> Int(kw/2)=2 -> int(kw/2)*2=4
6. Woche -> kw/2=3 -> int(kw/2)=3 -> int(kw/2)*2=6
Gruß Jürgen
"Jürgen Volke" <juerge...@hotmail.com> wrote in message
news:aq5ev4$da7$02$1...@news.t-online.com...
>
> das ist Ansichtssache!
>
> ich versteh obiges besser *bg*
>
> Int schneidet den Nachkommateil ab. Beispiel:
>
> 5. Woche -> kw/2 = 2,5 -> Int(kw/2)=2 -> int(kw/2)*2=4
> 6. Woche -> kw/2=3 -> int(kw/2)=3 -> int(kw/2)*2=6
Abgesehen von marginalen Performancenachteilen bei der Verwendung einer
Division (die Mod 2 Operation liest einfach nur das letzte Bit des
Integers aus), sehe ich keinen Unterschied im Ergebnis. Auch Mod kann
mit Komawerten nichts anfangen, weil es diese für Integers nicht gibt.
Gruss
Henry