bsn skrev:
> Jeg skal bare have vist det rigtige ugenr.
> Kan du forklare funktionen...???
Jeg kan prøve.
Fejlen med ugenummeret går ud på at den sidste mandag i december i
visse situationer fejlagtigt får ugenummeret 53 i stedet for 1. Når
det sker, er det kun mandagen der er berørt. Ser man fx på
årsskiftet 2007-2008 (som er førstkommende scenario hvor fejlen
optræder), giver den indbyggede ugenummerfunktion følgende
resultat:
Date: 30-12-2007 Day: sø Week: 52
Date: 31-12-2007 Day: ma Week: 53
Date: 01-01-2008 Day: ti Week: 1
Uge 53 i 2007 består altså - ifølge vb/vbscript - af én dag, nemlig
mandag den 31. december. Det er bare ikke korrekt, da et ugenummer
altid er det samme fra starten af ugen (mandag efter vores
standarder) til slutningen af ugen. 2007 har kun 52 uger, og mandag
den 31. december 2007 hører derfor til uge 1 (i år 2008).
WOY-funktionen eliminerer fejlen ved at lave et ekstra tjek hvis
ugenummeret er 53 (If WOY > 52 Then). Ved at lægge 7 dage til
datoen og tjekke ugenummeret igen, er det muligt at se om fejlen
dukker op. Hvis en dato 7 dage efter MyDate ligger i uge 2, må
MyDate nødvendigvis ligge i uge 1 - og ikke i uge 53.
Det er forholdsvis få datoer der er berørt af fejlen - som nævnt er
det kun sidste mandag i december hvor fejlen kan optræde, og det er
langt fra i alle år at det sker. Udover førnævnte tilfælde optræder
fejlen i år 2019, 2031, 2035 og 2047 i de kommende 50 år. Går man
bagud i tiden har fejlen været aktuel i 2003, 1991, 1979, 1975 og
1963 de sidste 50 år.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html